MailTo — что это и как в Html создать ссылку для отправки Емейла

Обновлено 19 декабря 2023 Просмотров: 77 729 Автор: Дмитрий Петров

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Иногда мне встречаются вопросы о том, что такое MAILTO. Люди пытаются переводить этот термин с английского (например, с помощью гугловского или яндексовского переводчика), но транслейтеры это слово не понимают. Больше толка будет, если вы спросите у них так: «mail to».

Переводчик ругнется, что это дескать «почта на», но понимать сие следует как «написать кому-то» или «отправить почтовое сообщение для кого-то». И именно этой цели служит Html тег MAILTO (точнее не тег, а атрибут, но это не суть важно).

MAILTO в Html

Он позволяет создавать ссылки (читайте что такое), при переходе по которым будет открываться почтовый клиент, выбранный в вашей операционной системе принятым по умолчанию (точнее страница создания нового письма). Там уже могут быть заполнены чуть ли не все поля (адрес, тема, введен текст сообщения) и пользователю останется только нажать на кнопку «отправить».

Очень удобно бывает использовать такую мульку, но вот принципы создания правильного тега ссылки на электронную почту не очевидны. Поэтому я и решил написать этот небольшой пост, чтобы вы в дальнейшем могли использовать его в качестве мануала при необходимости создать ссылку для полуавтоматической отправки сообщения на нужный вам Емайл адрес. Больно не будет, разве что чуток щекотно.

MAILTO в Html — что и как можно реализовать

Итак, прелесть MAILTO в том, что это мулька позволяет пользователю (например, посетителю вашего сайта) быстро отправить сообщение (письмо — читайте что такое электронная почта). При этом ему не потребуется ни почтовый клиент открывать, ни Емайл адрес с сайта копировать — при клике по такой ссылке все произойдет на автомате. Попробуйте сами кликнуть по этой тестовой ссылке: Отправить письмо админу KtoNaNovenkogo.ru

Можно будет и тему сообщения в эту ссылку зашить, и даже его содержание (текст). Последнее может быть удобно, например, при отправке сообщений об обнаружении какой-то определенной ошибки на сайте или при заказе какого-нибудь бесплатного курса, где текст может быть стандартным, а пользователю только по кнопке «Оправить» останется жмакнуть для отправки вам сообщения.

Например, при клике по приведенной чуть выше ссылке ваш почтовый клиент сам заполнит аж целых три поля:

Пример работы ссылки на электронную почту

Код такой ссылки, правда, будет выглядеть несколько монструозно, но во-первых, пользователь его все равно не увидит, а во-вторых, чуть ниже я на пальцах покажу насколько тут все просто устроено (правда, правда):

<a href="mailto:admin@ktonanovenkogo.ru%2C%20qwertydmitriy@gmail.com?subject=От%20уважаемого%20читателя&amp;body=Здравствуйте!%0D%0A%0D%0AВыражаю%20Вам%20свое%20фи!!!%0D%0AВы%20сильно%20пали%20в%20моих%20глазах!!!!">Отправить письмо админу KtoNaNovenkogo.ru</a>

Конечно же, на сайте для этой же цели может быть уместно установить форму обратной связи, но и MAILTO имеет право на жизнь, а по части автоматической подстановки текста этот вариант может дать фору многим формам. К тому же, такую ссылку можно будет отправить в Html письме или разместить на форуме, где это позволяется. В общем, штука полезная и вполне может пригодиться. Хотя бы будете знать где искать, если добавите этот пост в закладки.

Синтаксис ссылок с MAILTO для отправки Емайл сообщений

Синтаксис до безобразия прост, хотя итоговая конструкция и может показаться через чур перегруженной. Знаете какой будет самый простой вид ссылки на электронную почту? Скорее всего догадываетесь — это когда в открывшемся почтовом клиенте введется только лишь Емайл-адрес того, кому это письмо будет отправлено, а все остальные поля (тему и текст сообщения) пользователь должен будет заполнять самостоятельно. Выглядеть это дело будет примерно так: Отправить письмо админу KtoNaNovenkogo.ru

<a href="mailto:admin@ktonanovenkogo.ru">Отправить письмо админу KtoNaNovenkogo.ru</a>

Т.е. всего лишь заменяете в теге ссылки А (она же и гиперссылка А) атрибут HREF на MAILTO, а сразу после него без пробела, но через двоеточие пишите тот Емайл адрес, который вставится в поле «Кому» при создании нового сообщения в открывшемся почтовом клиенте на компьютере пользователя.

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

mailto:[Email][?[subject=Тема]&[body=Содержание]&[cc=Email]&[bcc=Email]

Т.е. в предыдущем (простейшем) примере мы использовали только:

mailto:[Email]

Но, как видите, можно после этого дела поставить знак вопроса (?) и дописать много чего интересного, а именно такие вот параметры:

  1. subject= — тот текст, что вставится в поле «Тема» при создании нового сообщения в открывшемся почтовом клиенте на компьютере пользователя.
  2. body= — вы можете и текст сообщения полностью здесь ввести, или хотя бы его начать, чтобы пользователю не нужно было бы, например, набирать «Здравствуйте!»
  3. cc= — на указанный тут Емайл-адрес будет отправлена копия письма
  4. bcc= — а на этот Емайл будет отправлена скрытая копия письма (он не будет отображаться у других получателей этого сообщения): MAILTO-ссылка со скрытым Емайл-адресом
    <a href="mailto:admin@ktonanovenkogo.ru?subject=Тема&amp;body=Текст&amp;bcc=qwertydmitriy@gmail.com">Текст Емайл-ссылки</a>
    Вставка скрытого Емайла в ссылку

Последние два параметра не факт, что вы будете использовать, тем более, что если требуется отправить письмо на несколько адресов, то проще их будет перечислить через запятую прямо непосредственно после MAILTO: Отправить письмо админу KtoNaNovenkogo.ru

<a href="mailto:admin@ktonanovenkogo.ru%2C%20qwertydmitriy@gmail.com">Отправить письмо админу KtoNaNovenkogo.ru</a>

Ничего необычного в записи не заметили? Я же ведь сказал через запятую, а сам какую-то лабуду из набора символов использовал. Что это? А это спецсимволы, которые лучше использовать вместо запятых, а также пробелов, амперсандов и других специфических знаков. Так оно надежнее будет, ибо не все почтовые программы их правильно воспримут.

Давайте я просто приведу тут набор спецсимволов (взятых из юникода), чтоб вам было понятнее:

  1. Вместо запятой и пробела следующего за ней вставляйте — %2C%20
  2. Вместо & — используйте &amp; (точка с запятой в конце обязательны)
  3. Вместо пробела — ставьте %20
  4. Перенос строки — можно задать с помощью конструкции %0D%0A

Думаю, что после этого вам становится понятнее тот код ссылки, который я привел в самом начале этого поста.

Внимательность вам в помощь...

Итак, подытожим. После Html атрибута MAILTO через двоеточие указывается Емайл, на который должно быть отправлено сообщение. Далее при необходимости ставится знак вопроса (без пробелов) и указываются какие-то из дополнительных параметров (subject, body, cc, bcc). Они опять вводятся в строке без пробелов, а их значения указываются после знака равно. Параметры друг от друга отделяются амперсандами & (опять же без пробелов). Вот и все. Видите, как просто.

Главное не забыть закрыть двойные кавычки после ввода значения последнего параметра, да и вообще быть внимательнее. Давайте для примера введем что-то простое, не требующее использования спецсимволов (разве что только &amp; вместо & все же придется использовать), которые сильно снижают визуализацию синтаксиса записи: Текст Емайл-ссылки

<a href="mailto:admin@ktonanovenkogo.ru?subject=Тема&amp;body=Текст">Текст Емайл-ссылки</a>

Да, ребят, если в адресе вашего Емайл тоже присутствуют какие-либо заковыристые символы, то их лучше будет заменить на спецсимволы юникода. Например, знак вопроса в Емайла лучше будет заменить на %3F (взять код можно из этой таблицы — просто найдите знак, кликните по нему и скопируйте код, добавив в записи MAILTO перед кодом знак процентов).

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Комментарии и отзывы (7)

Eugene

Оно все так, но маилту требует офлайнового настроенного почтового клиента!

А большинство пользуют только онлайн.

Дмитрий

Eugene: да, конечно же, есть такая проблема. Кто-то, правда, из фанатов, например, Гмайла, устанавливают в браузер расширения, которые предоставляют возможность сделать онлайновый почтовый клиент Гмайл умолчательной программой на компьютере, в которой и будут открываться все ссылки с E-mail адресами mailto 🙂

Сергей Удалов

У меня Оутлок выскакивает...

Света

Почему при переходе по ссылке в форме письма и в теле (в моем случае оутлук),

какие то абракадабра символы вместо приветственного текста???

Такого типа

Текст

Антон

Появляется проблема: каждый браузер обрабатывает перенаправление на mailto по своему. У одних Ваш пример получается корректно, у других нет. Например, последовательность %0D%0A часто бывает не воспринимается как переход на другую строку а передается в мэйл-программу один в один.

Как с этим быть?

Владимир

Есть ли возможность, чтобы письмо отправлялось в фоновом режиме?

Сергей

Спасибо за статью. Мне она очень пригодилась, для создания шаблона нулевого письма при подписке читателя, в нем надо было вставать ссылку на переход в почту пользователя, чтобы со мной связаться напрямую.

Я все не знал, как это сделать. Вот ещё осталось сделать финальный штрих, перевести пользователя на отдельные почтовые ящики в зависимости от того, чем они пользуются.

Например он может выбрать любой почтовый сервис, и при клике на иконку или ссылку переходит на него. Как это реализовать? Спасибо.

Ваш комментарий или отзыв