Можно ли добавить HTML-ссылку в тело MAILTO-ссылки?

Мне не приходилось много возиться со ссылками mailto. Однако теперь мне нужно добавить ссылку в тело письма, если это возможно.

Есть ли способ добавить ссылку или изменить открытое электронное письмо на HTML-письмо вместо текстового?

Что-то типа:

<a href = "mailto:[email protected]?body=The message's first paragraph.%0A%0aSecond paragraph.%0A%0AThird Paragraph.%0A%0ALink goes here">Link text goes here</a>

это действительно интересно, спустя 10 лет люди отметили этот вопрос как дубликат другого вопроса, который был задан 3 года спустя :))) Почему? даже ответы на этот вопрос не отличаются, и стандарт RFC 2368 не обновлялся.

Amir-Mousavi 15.05.2019 17:54
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
122
1
171 090
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Насколько я могу судить, это невозможно, поскольку для ссылки нужен HTML, а ссылки mailto не создают электронное письмо в формате HTML.

Вероятно, это сделано для безопасности, так как вы можете добавить к этой ссылке javascript или iframe, и почтовый клиент может открыть конечному пользователю уязвимости.

Ответ принят как подходящий

Раздел 2 RFC 2368 говорит, что поле body должно быть в формате text/plain, поэтому вы не можете использовать HTML.

Однако даже если вы используете простой текст, возможно, что некоторые современные почтовые клиенты все равно будут отображать URL-адрес как интерактивную ссылку.

Safari в iOS отображает такие теги, как <b>, <i> и <img>. Не уверен насчет <a>.

Andrew Ferrier 17.05.2012 18:39

Я могу подтвердить, что Thunderbird в Windows отображает URL-адрес как ссылку (на приемник), поэтому нет необходимости добавлять какие-либо теги <a>.

Pedro Araujo Jorge 07.06.2018 12:29

Добавьте полную ссылку:

 "http://"

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

Для действительно длинных URL-адресов, которые, вероятно, будут переноситься из-за всех параметров, заключите ссылку в символ меньше / больше чем. Это сообщает почтовому клиенту нет обернуть URL-адрес.

например

  <http://www.example.com/foo.php?this=a&really=long&url=with&lots=and&lots=and&lots=of&prameters=on_it>

Работает с приложением Почта на MacOS и iOS, с GMail в Chrome на MacOS и с приложением Почта на iOS.

Lars Juel Jensen 05.03.2018 19:35

Пожалуйста, проверьте ниже javascript в IE. Не знаю, будет ли работать другой современный браузер.

<html>
    <head>
        <script type = "text/javascript">
            function OpenOutlookDoc(){
                try {

                    var outlookApp = new ActiveXObject("Outlook.Application");
                    var nameSpace = outlookApp.getNameSpace("MAPI");
                    mailFolder = nameSpace.getDefaultFolder(6);
                    mailItem = mailFolder.Items.add('IPM.Note.FormA');
                    mailItem.Subject = "a subject test";
                    mailItem.To = "[email protected]";
                    mailItem.HTMLBody = "<b>bold</b>";
                    mailItem.display (0); 
                }
                catch(e){
                    alert(e);
                    // act on any error that you get
                }
            }
        </script>
    </head>
    <body>
        <a href = "javascript:OpenOutlookDoc()">Click</a>
    </body>
</html>

Я только что попробовал ваш пример и получаю сообщение об ошибке: «ReferenceError: ActiveXObject не определен»

Rodney 15.08.2012 21:11

Я обнаружил, что ActiveXObject поддерживается только в Internet Explorer, но не в приложениях в стиле Metro. Спасибо, в любом случае.

Rodney 15.08.2012 21:13

Это решение работает только в мире антиутопии будущего, где Microsoft управляет всем, а Internet Exploiter по-прежнему делает жизнь веб-разработчиков невыносимой.

pmarreck 06.12.2017 23:37

Вот что я собрал. Он работает на выбранном мобильном устройстве, для которого он мне нужен, но я не уверен, насколько универсально это решение.

<a href = "mailto:[email protected]?subject=Me&body=%3Chtml%20xmlns%3D%22http:%2F%2Fwww.w3.org%2F1999%2Fxhtml%22%3E%3C%2Fhead%3E%3Cbody%3EPlease%20%3Ca%20href%3D%22http:%2F%2Fwww.w3.org%22%3Eclick%3C%2Fa%3E%20me%3C%2Fbody%3E%3C%2Fhtml%3E">

Я пробовал твой пример ... не работает ....

Harshit Tailor 12.07.2013 11:04

У меня есть реализация, которая работает на устройствах iOS, но не работает на устройствах Android.

<a  href = "mailto:?subject=Your mate might be interested...&body=<div style='padding: 0;'><div style='padding: 0;'><p>I found this on the site I think you might find it interesting.  <a href='@(Request.Url.ToString())' >Click here </a></p></div></div>">Share This</a>

Спецификация тела mailto гласит:

The body of a message is simply lines of US-ASCII characters. The only two limitations on the body are as follows:

  • CR and LF MUST only occur together as CRLF; they MUST NOT appear independently in the body.
  • Lines of characters in the body MUST be limited to 998 characters, and SHOULD be limited to 78 characters, excluding the CRLF.

https://tools.ietf.org/html/rfc5322#section-2.3

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

Другие вопросы по теме