Дополнительные параметры
Чтобы письмо открывалось не пустым, а с заполненными данными, используют специальные параметры.
subject — тема письма. Автоматически заполняет поле «Тема». Помогает получателю сразу понять суть обращения.
<a href="mailto:info@site.ru?subject=Заявка на консультацию">Связаться</a>
body — текст сообщения. Вставляет готовый текст в тело письма. Можно добавить приветствие или структуру для заполнения.
<a href="mailto:info@site.ru?body=Здравствуйте, хочу узнать о...">Написать</a>
cc — копия письма (Carbon Copy). Добавляет дополнительного получателя. Все участники переписки видят этот адрес.
<a href="mailto:info@site.ru?cc=manager@site.ru">Отправить заявку</a>
bcc — скрытая копия (Blind Carbon Copy). Добавляет получателя, о котором не узнает основной адресат. Удобно для архивации писем.
<a href="mailto:info@site.ru?bcc=archive@site.ru">Написать</a>
Посредством дополнительных параметров можно создать готовый шаблон письма, в котором пользователю останется только дописать цель обращения.
Правила синтаксиса
Чтобы браузер и почтовый клиент правильно интерпретировали ссылку, нужно соблюдать строгие правила.
? (вопросительный знак). Разделяет email-адрес от параметров. Ставится один раз сразу после адреса.
mailto:info@site.ru?subject=Тема
& (амперсанд). Разделяет параметры между собой. Используют при добавлении двух и более параметров.
mailto:info@site.ru?subject=Тема&body=Текст
= (знак равенства). Связывает название параметра с его значением.
subject=Заказ
Перечисленные символы позволяют управлять браузером в процессе трактовки им правильного содержания ссылки.
Спецсимволы
Важно учесть, что в URL нельзя использовать обычные пробелы и переносы строк. Вместо них применяются специальные коды
%20 — пробел. Заменяет каждый пробел в тексте.
subject=Заявка%20на%20консультацию (превратится в «Заявка на консультацию»)
%0A — перенос строки. Добавляет переход на новую строку в теле письма.
body=Добрый%20день!%0AЯ%20хочу%20заказать (создаст две строки текста)
%21 и %3F — восклицательный и вопросительный знаки. Кодирование ! и ? для корректной обработки.
subject=Срочно%21 (отобразится как «Срочно!»)
Игнорирование спецсимволов приведет к неверной работе mailto-ссылки. При наличии пробелов ссылка оборвётся и браузер не распознает адреса. Без указания переносов строк весь текст слипнется в одну нечитаемую строку. Если не закодировать восклицательный и вопросительный знаки, то браузер воспримет их как служебные элементы, и часть темы или сообщения может «потеряться».