параметры mailto превью

Параметры mailto

Знаете ли вы, что в ссылке типа mailto:somebody@mailserver.ru можно передавать параметры? А в то время, когда аудитория ваших сайтов все чаще использует мобильные устройства, пользователи делятся ссылками не только в социальных сетях, но еще и по почте, пренебрежение вебмастерами параметров mailto считаю вообще признаком дурного тона. О том, как упростить вашим посетителям жизнь и сэкономить им драгоценную минуту жизни, я поделюсь в этой статье.

Параметров mailto немного, но есть свои нюансы при их использовании. Начну с перечня параметров:

subject
тема письма
body
текст письма
cc
копия
bcc
скрытая копия

Простой пример: я хочу передать в ссылке mailto следующие параметры:

  • subject — Статья про параметры mailto
  • body — Параметры mailto — как правильно использовать?\nhttp://vedernikoff.ru/параметры-mailto/\nАвторский блог Vedernikoff.ru
  • cc — info@vedernikoff.ru

Затем я посмотрю, как это воспримут разные платформы и приложения. «\n» в параметре body — это спецсимвол переноса строки. Параметры перечисляются аналогично параметрам GET в URL-адресе. Email получателя в атрибуте href тега a можно не указывать. Еще важное замечание: в примере я использую параметр cc — копия, но в реальной жизни ни копию, ни скрытую копию использовать не буду. Зачем лишний раз напрягать пользователя и требовать его слать письма от своего имени на неизвестные ему адреса?

Вроде бы все? А вот и нет. Проверив, что получилось: отправить по почте, мы убедимся, что такую ссылку поймут разве что почтовые клиенты типа Outlook, да и то поймут не до конца.

Вот так воспринял данную ссылку мой Outlook (рис.1)

параметры mailto рис.1

Рис.1 Обработка ссылки mailto в Outlook без кодирования параметров

Все ничего, но куда-то пропали переносы строк.

При работе с мобильного устройства все выглядит более печально. Клиент Яндекс.Почта на андроиде вообще отказался распознавать мое творчество, встроенный клиент и GMail показали те же результаты, что и Outlook на компьютере (рис.2):

параметры mailto рис.2

Рис.2 Слева-направо: Яндекс.Почта, GMail, встроенный почтовый клиент Android.

Для того, чтобы все параметры передавались корректно, их надо «подать» в правильном формате. Во-первых — чтобы программа могла отличить параметры от их значений (в значениях могут встретиться символы & и ?, что окончательно все нам поломает), во-вторых чтобы корректно воспринимались символы, отличные от цифр, символов -_. и от латинских букв.

Кодирование параметров mailto средствами PHP

В PHP для этого есть функция rawurlencode (php.net/manual/ru/function.rawurlencode.php). Процитирую описание:

Возвращает строку, в которой все не цифробуквенные символы, кроме -_. должны быть заменены знаком процента (%), за которым следует два шестнадцатеричных числа. Это кодирование, описанное в » RFC 3986, служит для защиты буквенных символов от интерпретации в качестве специальных разграничителей URL и защищает URL от искажения при передаче символов с последующей конвертацией (как в некоторых почтовых системах).

Как это выглядит в коде:

В результате мы получим «трехэтажную» ссылку, но зато она придется по нраву почтовым клиентам.

Ссылка из примера после обработки rawurlencode:

Проверим результат: Отправить по почте

параметры mailto рис.3

Рис.3 Outlook увидел переносы строк \n

Мобильные приложения:

параметры mailto рис.4

Рис.4 Корректное отображение в Яндекс.Почте, GMail и встроенном почтовом клиенте Android.

Как вы можете убедиться, в таком виде все прекрасно работает.

И напоследок совет: не стоит пихать в параметры html-тэги. Ссылки тоже указывайте в виде текста: какие-то почтовые клиенты сами их подсветят, какие-то — нет. Но это не беда.

Реклама:

Читайте также

Yoast SEO: свои приоритеты страниц в XML карте сай... Очень странным для меня в WordPress оказалось отсутствие каких-либо намеков на SEO - оптимизацию. Пришлось искать дополнения. Поставил себе Yoast SEO ...