Можно ли добавить ссылку HTML в тело ссылки MAILTO [дубликат]
этот вопрос уже есть ответ здесь:
ссылка mailto с телом HTML
10 ответов
мне не пришлось много возиться с ссылками 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>
7 ответов:
Раздел 2 из RFC 2368 говорит о том, что
bodyполе должно быть вtext/plainформат, так что вы не можете сделать HTML.однако, даже если вы используете обычный текст, возможно, что некоторые современные почтовые клиенты все равно будут отображать URL-адрес в качестве кликабельной ссылки.
добавить полную ссылку, с:
"http://"к началу строки, и большинство приличных почтовых клиентов будут автоматически связывать его либо перед отправкой, либо на другом конце при получении.
для действительно длинных URL-адресов, которые, скорее всего, будут обернуты из-за всех параметров, оберните ссылку в символ меньше/больше. Это говорит почтовый клиент не чтобы обернуть url.
например
<http://www.example.com/foo.php?this=a&really=long&url=with&lots=and&lots=and&lots=of&prameters=on_it>
Это невозможно, насколько я могу судить, так как ссылка нуждается в HTML, а ссылки mailto не создают HTML-адрес электронной почты.
Это, вероятно, для безопасности, поскольку вы можете добавить javascript или iframes к этой ссылке, и почтовый клиент может открыть конечного пользователя для уязвимостей.
пожалуйста, проверьте ниже 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>
вот что я собрал. Он работает на выбранном мобильном устройстве, для которого он мне нужен, Но я не уверен, насколько универсально решение
<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">
спецификация для тела "mailto" говорит:
тело сообщения-это просто строки символов US-ASCII. Этот только два ограничения на тело заключаются в следующем:
- CR и LF должны происходить только вместе как CRLF; они не должны появляться независимо в теле.
- строки символов в тексте должно быть ограничено 998 символов, и должны быть ограничены до 78 символов, без учета возврата каретки и перевода строки.
https://tools.ietf.org/html/rfc5322#section-2.3
Как правило, сегодня большинство почтовых клиентов хорошо autolinking, но не все это делают, из-за соображений безопасности. Вероятно, вы можете найти некоторые обходные пути, но это не обязательно будет работать повсеместно.
У меня есть реализация после него работает для 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>
Comments