Могу ли я установить тему / содержание письма, используя mailto :?

890

Можно ли установить тему / содержание письма при использовании mailto:?

Jiew Meng
источник
2
связанные css-tricks.com/snippets/html/mailto-links
Adrien Be
6
Вы можете установить каждую часть электронной почты. Вот инструмент, который я создал, чтобы упростить его: mailto.now.sh
Доусон Б.

Ответы:

1460

Да, посмотрите все советы и рекомендации с помощью mailto: http://www.angelfire.com/dc/html-webmaster/mailto.htm

Пример темы mailto:

<a href="mailto:no-one@snai1mai1.com?subject=free chocolate">example</a>

mailto с содержанием:

<a href="mailto:no-one@snai1mai1.com?subject=look at this website&body=Hi,I found this website and thought you might like it http://www.geocities.com/wowhtml/">tell a friend</a>

Как упоминается в комментариях, оба subjectи bodyдолжны быть экранированы должным образом. Используйте encodeURIComponent(subject)на каждом, а не ручное кодирование для конкретных случаев.

Как упомянул Hoody в комментариях, вы можете добавить разрывы строк, добавив следующую закодированную последовательность в строку:

%0D%0A // one line break
Хаим Евги
источник
29
Можно ли использовать HTML для тела?
Jiew Meng
18
Это полностью зависит от клиента. В общем случае нет.
tripleee
4
Просто для справки: вам не нужно htmlescape предмета
Оскар Перес
17
Обратите внимание, что W3C требует, чтобы вы кодировали свою строку в соответствии с этими правилами: символы должны быть представлены в NFC, а пробелы должны быть экранированы как% 20.
Горди
96
Если кому-то еще интересно, вы также можете добавить разрывы строк к телу, используя последовательность% 0D% 0A - cubetoon.com/2008/…
Hoody
123
<a href="mailto:manish@simplygraphix.com?subject=Feedback for 
webdevelopersnotes.com&body=The Tips and Tricks section is great
&cc=anotheremailaddress@anotherdomain.com
&bcc=onemore@anotherdomain.com">Send me an email</a>

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

oditiwebs.com
источник
39

Схема mailto:URL-адреса определена в RFC 2368 . Кроме того, соглашение для кодирования информации в URL и URI определено в RFC 1738 и затем RFC 3986 . Они описывают, как включать bodyи subjectзаголовки в URL (URI):

mailto:infobot@example.com?subject=current-issue&body=send%20current-issue

В частности, вы должны в процентах кодировать адрес электронной почты, тему и текст и помещать их в приведенный выше формат. Закодированный в процентах текст допустим для использования в HTML, однако этот URL должен быть закодирован для использования в hrefатрибуте в соответствии со стандартом HTML4 :

<a href="mailto:infobot@example.com?subject=current-issue&amp;body=send%20current-issue">Send email</a>

И, в общем, вот простой PHP-скрипт, который кодирует в соответствии с вышеизложенным.

<?php
$encodedTo = rawurlencode($message->to);
$encodedSubject = rawurlencode($message->subject);
$encodedBody = rawurlencode($message->body);
$uri = "mailto:$encodedTo?subject=$encodedSubject&body=$encodedBody";
$encodedUri = htmlspecialchars($uri);
echo "<a href=\"$encodedUri\">Send email</a>";
?>
Уильям Энтрикен
источник
Вот гораздо более глубокий пример того, есть ли в вашем электронном письме URL-адрес, а в этом URL-адресе есть вещи, которые необходимо кодировать: stackoverflow.com/questions/4744888/…
William Entriken
1
Я думаю, что есть опечатка в строке $uri = ...: &перед subjectдолжен быть?
Jost21
24

Вы можете добавить тему, добавленную в команду mailto, одним из следующих способов. Добавьте? Subject out mailto в тег mailto.

<a href="mailto:test@example.com?subject=testing out mailto">First Example</a>

Мы также можем добавить текст в тело сообщения, добавив & body в конец тега, как показано в примере ниже.

 <a href="mailto:test@example.com?subject=testing out mailto&body=Just testing">Second Example</a>

В дополнение к телу пользователь может также ввести & cc или & bcc, чтобы заполнить поля CC и BCC.

<a href="mailto:test@example.com?subject=testing out mailto&body=Just testing&cc=test1@example.com&bcc=test1@example.com">Third
    Example</a>

Как добавить тему в тег mailto

niksmac
источник
13

Я создал инструмент с открытым исходным кодом для облегчения этого. Введите строки, которые вы хотите, и вы сразу получите mailto:

mailto.now.sh

Full Шаблон полных писем в mailto

введите описание изображения здесь

Доусон Б
источник
12
mailto:joe@company.com?subject=Your+subject
Payne
источник
1
Мой subjectне текст. Это таблица. Как добавить это.
Дэвид
9

Я разделил его на отдельные строки, чтобы сделать его немного более читабельным.

<a href="

    mailto:johndoe@gmail.com

    ?subject=My+great+email+to+you

    &body=This+is+an+awesome+email

    &cc=janedoe@gmail.com

    &bcc=billybob@yahoo.com

">Click here to send email!</a>
quemeful
источник
1
на этот вопрос ответил 5 лет назад
varun aaruru
14
и он до сих пор используется сегодня, когда вы хотите что-то отправить по почте
вялый
7

Да:

Используйте это, чтобы поэкспериментировать с элементами формы mailto и кодированием ссылок.

Вы можете ввести тему, текст (то есть содержимое) и т. Д. В форму, нажать кнопку и увидеть ссылку mailto html, которую вы можете вставить на свою страницу.

Вы можете даже указать элементы, которые редко известны и используются: cc, bcc, из электронных писем.

Воз
источник
Также очень полезной особенностью этого href field composer является возможность закодировать все символы в шестнадцатеричное (например, [Test Zõne]становится %5BTest%20Z%C3%B5ne%5D, это может избежать некоторых спам-ботов).
Armfoot
Я имею в виду, если вы решите закодировать все символы, они все будут преобразованы в нотацию HTML &#x(избегая некоторых спам-ботов).
Armfoot
4
Эта ссылка мертва.
Брэм Ванрой
6

Да, вам может понравиться это:

mailto: email@host.com?subject=something
MeanEYE
источник
2
Я не думаю, что место должно быть там?
Nafg
это должно быть без места.
Хасан Раза
5

Обратите внимание, что в соответствии с RFC 2368 невозможно использовать HTML в теле сообщения :

Специальное hname «body» указывает, что ассоциированное hvalue является телом сообщения. Hname «body» должно содержать содержимое первой текстовой / простой части тела сообщения. URL mailto в первую очередь предназначен для генерации коротких текстовых сообщений, которые на самом деле являются содержимым автоматической обработки (например, сообщения «подписка» для списков рассылки), а не общими телами MIME.

Кредит: https://stackoverflow.com/a/13415988/1835519

Юре Сах
источник
2
Вопрос в том, как задать тему и содержание. Это не упоминало форматирование. Несмотря на то , что это полезная вещь записку на ответ, вы оставили вне немного о том, что это возможно , и как ее достичь. Без этого это комментарий, а не ответ.
Квентин,
Jure, я действительно ценю, что вы поставили это как ответ на этот вопрос, поскольку это именно то, что мне нужно было выяснить, и спрашивал себя. Поэтому, хотя Квентин считает, что это не отвечает на вопрос ОП, он отвечает на мой вопрос, который я искал, поднял этот пост. Большое спасибо Юре!
user1567291
3

Вот исполняемый фрагмент, который поможет вам создать mailto: ссылки с необязательной темой и телом.

function generate() {
  var email = $('#email').val();
  var subject = $('#subject').val();
  var body = $('#body').val();

  var mailto = 'mailto:' + email;
  var params = {};
  if (subject) {
    params.subject = subject;
  }
  if (body) {
    params.body = body;
  }
  if (params) {
    mailto += '?' + $.param(params);
  }

  var $output = $('#output');
  $output.val(mailto);
  $output.focus();
  $output.select();
  document.execCommand('copy');
}

$(document).ready(function() {
  $('#generate').on('click', generate);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="email" placeholder="email address" /><br/>
<input type="text" id="subject" placeholder="Subject" /><br/>
<textarea id="body" placeholder="Body"></textarea><br/>
<button type="button" id="generate">Generate & copy to clipboard</button><br/>
<textarea id="output">Output</textarea>

congusbongus
источник
1

Если вы хотите добавить html-контент к своей электронной почте, url закодируйте ваш html-код для тела сообщения и включите его в свой код ссылки mailto, но проблема заключается в том, что вы не можете установить тип электронной почты с этой ссылки с открытого текста на html, клиенту, использующему ссылку, необходим почтовый клиент для отправки html-писем по умолчанию. Если вы хотите протестировать, вот код простой почтовой ссылки с изображением, обернутым в ссылку (для наглядности добавлены угловые стили):

<a href="mailto:?body=%3Ca%20href%3D%22{{ scope.url }}%22%3E%3Cimg%20src%3D%22{{ scope.url }}%22%20width%3D%22300%22%20%2F%3E%3C%2Fa%3E">

HTML-теги имеют кодировку URL.

serdarsenay
источник
Можете ли вы также опубликовать пример, в котором тело <a href> просто содержит href и текст между ним и конечным тегом? Спасибо
user1567291
<a href="<same как указано выше> "> Это текст ссылки </a> @ user1567291
serdarsenay
Это не работает Почтовый клиент будет просто отображать все HTML-теги в виде текста, а не обрабатывать его как форматированный текстовый документ.
Ε Г И І И О