web-dev-qa-db-ja.com

メールでのテキスト/マークダウンの使用

RFC 776 および 7764 に従って単一部分の電子メールをContent-Type: text/markdown; charset=UTF-8;として送信し始めた場合、受信者側で問題が発生することを予期する必要がありますか?デフォルトのtext/plainに安全にフォールバックする必要があると思います。


電子メールクライアントがMarkdown/Commonmarkまたは関連する 言語 をサポートできる方法はいくつかあります。ここでは、送信とその結果の表示について説明しています。

入力

  • ユーザーがキーボードで入力したアスタリスク、アンダースコアなどをHTMLタグ(または理論的には他のリッチテキスト形式)に変換し、text/plainおよびtext/htmlを含むマルチパートメッセージとして電子メールを送信します。
  • 上記と同様ですが、GUIボタンまたはキーボードショートカットも提供します(例:fooCtrlI_foo_)これらのフォーマットの入力を支援します。これは基本的にリッチテキストエディタであり、現在ほとんどの場合よりも優れたプレーンテキストフォールバックを生成します。

これらはどちらも、レンダリングされたテキストのインラインプレビュー、並べて表示、または送信前のプレビューを使用できません。

これは、 Markdown Here のようなプラグインが実行できることであり、一部の(Web)メールクライアントはネイティブにサポートしています。 AirmailMail MateMailspringGmeliusCypht 。一部のニュースレター、管理者、 ticket 、または電子メールを自分で送信するショップシステムも、この方法でマークダウン入力を処理できます。

伝染;感染

  • 標準の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メール、単一のMarkdown機能のリッチテキストレンダリングをサポート:行頭に(おそらくネストされている)>を使用した引用のブロック。

4
Crissov

Markdown はさまざまな方法とフレーバーで実装されています。ウィキペディアには、Standard、CommonMark、GFM、Markdown Extraがリストされていますが、同じ標準を実装するたびに、同じマークダウンテキストに対して異なる結果が得られる場合があります( )。

新しいRFCにもかかわらず、電子メールの公式の標準タイプはありませんが、text/markdownが最も一般的なデファクトタイプのようです。ほとんどのブラウザやその他の適度に洗練されたクライアントは、text/の部分を認識し、デフォルトでtext/plainに設定される可能性が高いため、電子メールに関しては大きな違いはありません。

Markdown実装リスト を見ると、電子メールクライアントまたはサーバーが1つも含まれていないことがわかります。

マークダウンをHTMLに変換してメールを送信するWebサイトがあります。たとえば、コマーシャル Gmelius 、およびPHPにもいくつかのマークダウンモジュールがありますが、コンバーターはあなたが期待するかもしれないほとんど。

@grawityのコメントによると、彼がテストした電子メールクライアントのうち、Thunderbirdのみが表示するRawデータとして渡しました。他の人は単に添付ファイル内にマークダウンをまとめただけです。つまり、ThunderbirdだけがContent-Typeのtext/部分に注意を払い、他の人はMIME仕様全体のみを扱いましたが、Markdownを理解していないため不明でした。

マークダウンの組み込みの波が電子メールクライアントに届いておらず、決して届かない可能性があるため、今日の状況ではマークダウンを使用することは良い考えではないと思います。いずれにせよ、上記のw3.orgリンクによると、電子メールクライアントはそれを正しく処理しないため、実際には意味がありません。

1
harrymc

メールが単一部分である必要がある場合、マークダウン部分しか存在しないため、text/plainにフォールバックできません。受信者のメールクライアントのマークダウンサポートに完全に依存することになります。 text/markdownとtext/plainの両方を含むマルチパートメッセージの場合、うまくいくと思います。あなたは実際にこれを試しましたか?

メールクライアントでのMarkdownの現在のサポートが何であるかはわかりませんが、まだ広く受け入れられていないと感じています。 このかなり古いページ を除いて、私は本当に何も見つけることができません。

このメッセージをOutlookで開こうとしました(.emlファイルとして保存されています)。テキストが添付された空のメッセージとして表示されます。

From: John Doe <[email protected]>
MIME-Version: 1.0
Content-Type: text/markdown

# this is the body text
0
Berend