MailTo — что это и как в Html создать ссылку для отправки Емейла
Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Иногда мне встречаются вопросы о том, что такое MAILTO. Люди пытаются переводить этот термин с английского (например, с помощью гугловского или яндексовского переводчика), но транслейтеры это слово не понимают. Больше толка будет, если вы спросите у них так: «mail to».
Переводчик ругнется, что это дескать «почта на», но понимать сие следует как «написать кому-то» или «отправить почтовое сообщение для кого-то». И именно этой цели служит Html тег MAILTO (точнее не тег, а атрибут, но это не суть важно).
Он позволяет создавать ссылки (читайте что такое), при переходе по которым будет открываться почтовый клиент, выбранный в вашей операционной системе принятым по умолчанию (точнее страница создания нового письма). Там уже могут быть заполнены чуть ли не все поля (адрес, тема, введен текст сообщения) и пользователю останется только нажать на кнопку «отправить».
Очень удобно бывает использовать такую мульку, но вот принципы создания правильного тега ссылки на электронную почту не очевидны. Поэтому я и решил написать этот небольшой пост, чтобы вы в дальнейшем могли использовать его в качестве мануала при необходимости создать ссылку для полуавтоматической отправки сообщения на нужный вам Емайл адрес. Больно не будет, разве что чуток щекотно.
MAILTO в Html — что и как можно реализовать
Итак, прелесть MAILTO в том, что это мулька позволяет пользователю (например, посетителю вашего сайта) быстро отправить сообщение (письмо — читайте что такое электронная почта). При этом ему не потребуется ни почтовый клиент открывать, ни Емайл адрес с сайта копировать — при клике по такой ссылке все произойдет на автомате. Попробуйте сами кликнуть по этой тестовой ссылке: Отправить письмо админу KtoNaNovenkogo.ru
Можно будет и тему сообщения в эту ссылку зашить, и даже его содержание (текст). Последнее может быть удобно, например, при отправке сообщений об обнаружении какой-то определенной ошибки на сайте или при заказе какого-нибудь бесплатного курса, где текст может быть стандартным, а пользователю только по кнопке «Оправить» останется жмакнуть для отправки вам сообщения.
Например, при клике по приведенной чуть выше ссылке ваш почтовый клиент сам заполнит аж целых три поля:
Код такой ссылки, правда, будет выглядеть несколько монструозно, но во-первых, пользователь его все равно не увидит, а во-вторых, чуть ниже я на пальцах покажу насколько тут все просто устроено (правда, правда):
<a href="mailto:admin@ktonanovenkogo.ru%2C%20qwertydmitriy@gmail.com?subject=От%20уважаемого%20читателя&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]
Но, как видите, можно после этого дела поставить знак вопроса (?) и дописать много чего интересного, а именно такие вот параметры:
- subject= — тот текст, что вставится в поле «Тема» при создании нового сообщения в открывшемся почтовом клиенте на компьютере пользователя.
- body= — вы можете и текст сообщения полностью здесь ввести, или хотя бы его начать, чтобы пользователю не нужно было бы, например, набирать «Здравствуйте!»
- cc= — на указанный тут Емайл-адрес будет отправлена копия письма
- bcc= — а на этот Емайл будет отправлена скрытая копия письма (он не будет отображаться у других получателей этого сообщения): MAILTO-ссылка со скрытым Емайл-адресом
<a href="mailto:admin@ktonanovenkogo.ru?subject=Тема&body=Текст&bcc=qwertydmitriy@gmail.com">Текст Емайл-ссылки</a>
Последние два параметра не факт, что вы будете использовать, тем более, что если требуется отправить письмо на несколько адресов, то проще их будет перечислить через запятую прямо непосредственно после MAILTO: Отправить письмо админу KtoNaNovenkogo.ru
<a href="mailto:admin@ktonanovenkogo.ru%2C%20qwertydmitriy@gmail.com">Отправить письмо админу KtoNaNovenkogo.ru</a>
Ничего необычного в записи не заметили? Я же ведь сказал через запятую, а сам какую-то лабуду из набора символов использовал. Что это? А это спецсимволы, которые лучше использовать вместо запятых, а также пробелов, амперсандов и других специфических знаков. Так оно надежнее будет, ибо не все почтовые программы их правильно воспримут.
Давайте я просто приведу тут набор спецсимволов (взятых из юникода), чтоб вам было понятнее:
- Вместо запятой и пробела следующего за ней вставляйте — %2C%20
- Вместо & — используйте & (точка с запятой в конце обязательны)
- Вместо пробела — ставьте %20
- Перенос строки — можно задать с помощью конструкции %0D%0A
Думаю, что после этого вам становится понятнее тот код ссылки, который я привел в самом начале этого поста.
Внимательность вам в помощь...
Итак, подытожим. После Html атрибута MAILTO через двоеточие указывается Емайл, на который должно быть отправлено сообщение. Далее при необходимости ставится знак вопроса (без пробелов) и указываются какие-то из дополнительных параметров (subject, body, cc, bcc). Они опять вводятся в строке без пробелов, а их значения указываются после знака равно. Параметры друг от друга отделяются амперсандами & (опять же без пробелов). Вот и все. Видите, как просто.
Главное не забыть закрыть двойные кавычки после ввода значения последнего параметра, да и вообще быть внимательнее. Давайте для примера введем что-то простое, не требующее использования спецсимволов (разве что только & вместо & все же придется использовать), которые сильно снижают визуализацию синтаксиса записи: Текст Емайл-ссылки
<a href="mailto:admin@ktonanovenkogo.ru?subject=Тема&body=Текст">Текст Емайл-ссылки</a>
Да, ребят, если в адресе вашего Емайл тоже присутствуют какие-либо заковыристые символы, то их лучше будет заменить на спецсимволы юникода. Например, знак вопроса в Емайла лучше будет заменить на %3F (взять код можно из этой таблицы — просто найдите знак, кликните по нему и скопируйте код, добавив в записи MAILTO перед кодом знак процентов).
Комментарии и отзывы (7)
Оно все так, но маилту требует офлайнового настроенного почтового клиента!
А большинство пользуют только онлайн.
Eugene: да, конечно же, есть такая проблема. Кто-то, правда, из фанатов, например, Гмайла, устанавливают в браузер расширения, которые предоставляют возможность сделать онлайновый почтовый клиент Гмайл умолчательной программой на компьютере, в которой и будут открываться все ссылки с E-mail адресами mailto 🙂
У меня Оутлок выскакивает...
Почему при переходе по ссылке в форме письма и в теле (в моем случае оутлук),
какие то абракадабра символы вместо приветственного текста???
Такого типа
Текст
Появляется проблема: каждый браузер обрабатывает перенаправление на mailto по своему. У одних Ваш пример получается корректно, у других нет. Например, последовательность %0D%0A часто бывает не воспринимается как переход на другую строку а передается в мэйл-программу один в один.
Как с этим быть?
Есть ли возможность, чтобы письмо отправлялось в фоновом режиме?
Спасибо за статью. Мне она очень пригодилась, для создания шаблона нулевого письма при подписке читателя, в нем надо было вставать ссылку на переход в почту пользователя, чтобы со мной связаться напрямую.
Я все не знал, как это сделать. Вот ещё осталось сделать финальный штрих, перевести пользователя на отдельные почтовые ящики в зависимости от того, чем они пользуются.
Например он может выбрать любой почтовый сервис, и при клике на иконку или ссылку переходит на него. Как это реализовать? Спасибо.
Ваш комментарий или отзыв