Можно ли добавить ссылку HTML в теле ссылки MAILTO
Мне не приходилось часто связываться с почтовыми ссылками. Однако теперь мне нужно добавить ссылку в тело mailto, если это возможно.
Есть ли способ добавить ссылку или изменить электронную почту, открытую для html-email, вместо текстового сообщения?
Что-то вроде:
<a href="mailto:[email protected]?body=The message first paragraph.%0A%0aSecond paragraph.%0A%0AThird Paragraph.%0A%0ALink goes here">Link text goes here</a>
Ответы
Ответ 1
Раздел 2 RFC 2368 говорит, что поле body
должно быть в формате text/plain
поэтому вы не можете делать HTML.
Однако, даже если вы используете простой текст, возможно, что некоторые современные почтовые клиенты будут отображать URL-адрес в качестве ссылки с возможностью клика в любом случае.
Ответ 2
Добавьте полную ссылку, используя:
"http://"
до начала строки, а самые приличные почтовые клиенты будут автоматически связывать его либо перед отправкой, либо на другом конце при получении.
Для действительно длинных URL-адресов, которые, скорее всего, будут переноситься из-за всех параметров, оберните ссылку меньшим или большим, чем символ. Это сообщает почтовому клиенту не обернуть URL.
например.
<http://www.example.com/foo.php?this=a&really=long&url=with&lots=and&lots=and&lots=of&prameters=on_it>
Ответ 3
Пожалуйста, проверьте ниже 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>
Ответ 4
Это невозможно, насколько я могу судить, поскольку ссылка нуждается в HTML, а ссылки mailto не создают HTML-письмо.
Это, вероятно, для обеспечения безопасности, поскольку вы можете добавить javascript или iframes к этой ссылке, и клиент электронной почты может открыть конечный пользователь для уязвимостей.
Ответ 5
Вот что я собрал. Он работает на выбранном мобильном устройстве, в котором я нуждался, но я не уверен, насколько универсальным является решение
<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">
Ответ 6
В спецификации для тела "mailto" указано:
Тело сообщения - это просто строки символов US-ASCII. только два ограничения на тело:
- CR и LF ДОЛЖНЫ встречаться вместе только как CRLF; они НЕ ДОЛЖНЫ появляться независимо в теле.
- Линии символов в теле ДОЛЖНЫ быть ограничены 998 символами и ДОЛЖНЫ быть ограничены до 78 символов, исключая CRLF.
https://tools.ietf.org/html/rfc5322#section-2.3
В настоящее время большинство почтовых клиентов хорошо умеют автоматизировать, но не все из-за проблем с безопасностью. Вероятно, вы можете найти некоторые обходы, но это не обязательно будет работать повсеместно.
Ответ 7
У меня есть реализация после того, как он работает на устройствах 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>