Использование текста / уценки в электронных письмах

302
Crissov

Должен ли я ожидать каких-либо проблем на стороне получателей, если я начал отправлять электронные письма, состоящие из одной части, в Content-Type: text/markdown; charset=UTF-8;соответствии с RFC 7763 и 7764 ? Я считаю, что он должен вернуться к дефолту text/plain.


Есть несколько способов, которыми почтовые клиенты могут поддерживать Markdown / Commonmark или родственные языки . Я говорю о передаче и полученном показе здесь.

вход

  • Преобразуйте звездочки, подчеркивания и т. Д., Введенные пользователем с помощью клавиатуры, в теги HTML (или, теоретически, в любой другой форматированный текст) и отправьте сообщение электронной почты в виде составного сообщения с помощью text/plainи text/html.
  • Как и выше, но также предлагают кнопки графического интерфейса пользователя или сочетания клавиш (например, foo+ CtrlI_foo_) для облегчения ввода этих форматов. По сути, это текстовый редактор с расширенными возможностями, который генерирует лучший откат для простого текста, чем большинство в настоящее время.

Оба из них могут использовать предварительный просмотр не визуализированного текста: встроенный, параллельный или перед отправкой.

Это то, что могут делать плагины, такие как Markdown Here, и некоторые (веб) почтовые клиенты изначально поддерживают, например, Airmail, Mail Mate, Mailspring, Gmelius, Cypht . Некоторые новостные рассылки, системы администрирования, тикеты или магазины, которые сами отправляют электронные письма, также могут обрабатывать ввод уценки таким образом.

коробка передач

  • Отправляйте сообщения, text/markdownсостоящие из одной части, вместо стандартных text/plain, полагаясь на постепенный откат к последнему. Это то, о чем я спрашиваю!
  • Отправляйте сообщения, состоящие text/markdownиз нескольких частей, вместо text/htmlдублирования text/plainтела сообщения.
  • Отправляйте многочастные сообщения с сгенерированной text/htmlи text/markdownвместо обычной text/plainбазовой версией.

Mail Mate и Groups.io могут добавить параметр заголовка следующим образом:

Content-Type: text/plain; format=flowed; markup=markdown 

дисплей

  • Отображать полученные одночастные письма с соответствующим text/markdownзаголовком в виде обычного текста, как если бы это было так text/plain. Это ожидаемый изящный запасной вариант.
  • Отображение полученных писем, Content-Typeсостоящих из одной или нескольких частей, для которых задан заголовок с text/markdownтипом или markup=markdownпараметром в виде форматированного текста с удаленными символами форматирования.
  • Отображать полученные одночастные письма, которые проходят некоторую эвристику, чтобы определить, что они были написаны в соответствии с Markdown или некоторыми другими соглашениями LML, как форматированный текст с символами форматирования, которые возможно сохраняются.

Многие клиенты, например Apple Mail, поддерживают форматированный текст для одной функции Markdown: блокировать цитаты с (возможно, вложенными) >в начале строки.

1

2 ответа на вопрос

1
harrymc

Уценка была реализована различными способами и вкусами. В Википедии перечислены Standard, CommonMark, GFM и Markdown Extra, но каждая реализация даже одного и того же стандарта может давать разные результаты для одного и того же текста уценки ( пример ).

Несмотря на новые RFC, не существует официального стандартного типа для электронной почты, но, text/markdownпохоже, он является наиболее распространенным типом де-факто. Большинство браузеров и других достаточно сложных клиентов, скорее всего, увидят эту text/часть и по умолчанию text/plainвсе равно, так что нет особой разницы в отношении электронной почты.

Если вы посмотрите на список Реализаций Markdown, то увидите, что в него не включен ни один почтовый клиент или сервер.

Существуют веб-сайты, которые преобразуют вашу уценку в HTML и отправят вам электронное письмо, например, коммерческий Gmelius, и в PHP также есть несколько модулей уценки, но конвертеры - это самое лучшее, что вы можете ожидать.

Согласно комментариям @grawity, среди почтовых клиентов, которые он тестировал, только Thunderbird передавал их в виде необработанных данных для отображения. Остальные просто поместили уценку в приложении. Это означает, что только Thunderbird обратил внимание на text/часть в Content-Type, в то время как остальные обрабатывали только всю спецификацию MIME, которая была им неизвестна, так как они не понимают Markdown.

Я действительно не думаю, что в нынешних условиях использование Markdown - это хорошая идея, так как волна уценки не достигла почтовых клиентов и, возможно, никогда не достигнет этого. В любом случае, по w3.org ссылке выше, ни один почтовый клиент не справится с этим правильно, поэтому в этом нет никакого смысла.

Пожалуйста, смотрите комментарий @grawity в моем ответе. Очевидно, что большинство почтовых клиентов * не * вернутся в текстовый режим, а укажут уценку как вложение. Berend 5 лет назад 0
Вы на самом деле просто заявляете о моих проблемах: это * должно * изящно отступить, но так ли это на самом деле? Я (пока) не ожидаю (m) того, чтобы клиенты конвертировали код уценки в форматированный текст. Crissov 5 лет назад 0
Я пытался мягко передать сообщение о том, что тема находится в стадии эволюции, но в данный момент не рекомендуется. harrymc 5 лет назад 0
Тема на самом деле не Markdown - это обработка MIME почтовых клиентов в целом. Если клиент поддерживает `text / *` fallback ("... в противном случае он переключится в текстовый режим из-за текста / части"), то он поддержал бы это _regardless_ из Markdown: он сделал бы то же самое с `text / rtf`, `text / enriched`,` text / futhark`. grawity 5 лет назад 1
@ Grawity: я предполагаю, что строгий почтовый клиент, который обрабатывает только известные типы контента, будет помещать их во вложение как есть. Thunderbird может быть единственным протестированным вами клиентом, который разумно смотрит на часть `text /` и решает, что содержимое может быть достаточно хорошим для отображения. harrymc 5 лет назад 0
Если бы комментарии @ grawity были объединены в ответ, я бы принял это. Crissov 5 лет назад 0
Сделал это и надеюсь, что @grawity согласится. harrymc 5 лет назад 0
0
Berend

Если письмо должно состоять из одной части, оно не может быть возвращено к тексту / обычному тексту, потому что есть только часть уценки. Вы будете полностью зависеть от поддержки уценки почтового клиента получателя. Я думаю, что для составных сообщений, содержащих как текст / разметку, так и текст / обычную, это может сработать. Вы действительно пробовали это?

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

Я просто попытался открыть это сообщение в Outlook (сохранено в виде .emlфайла); это показывает как пустое сообщение с текстовым приложением:

From: John Doe <example@example.com> MIME-Version: 1.0 Content-Type: text/markdown  # this is the body text 
Я думаю, что OP означал другой тип отступления - не многочастный, а простой отказ от показа содержимого (исходного кода) без какой-либо интерпретации, когда конкретный подтип не распознан. Например, если клиент, который не поддерживает HTML, получает сообщение только для текста / html, он все равно _usually_ покажет его (как необработанные теги HTML). grawity 5 лет назад 1
@ grawity Да, это тоже пришло мне в голову, но мы не можем быть уверены. Outlook по крайней мере не делает этого. Berend 5 лет назад 0
(Быстрые результаты эксперимента: Thunderbird - единственная программа, которая отображает текст / разметку как необработанный источник; большинство других клиентов показывают его как вложение.) grawity 5 лет назад 1
@ Grawity Да, это именно то, чего я боялся. Это должно отступить изящно, но у некоторых / многих клиентов это не будет. В конце концов, я сочиняю свои текстовые электронные письма с форматированием уценки, просто отправляю как `text / plain`. Я * не хочу * конвертировать их в HTML на моей стороне и отправлять как `text / html`. Crissov 5 лет назад 0

Похожие вопросы