2013-03-21 4 views
15

にメールヘッダー「から」どのようにコンマ

From: John Doe <[email protected]> 

ですが、名前にカンマがある場合に何をすべきかをフォーマットするための標準的な方法を含むヘッダー "からのメールをフォーマットするには?

From: John Doe, chief bottle washer <[email protected]> 

私はそれを行う場合には、私のMTAは、自動的にこれを変換します。私の最初の推測では、完全な名前を二重引用符を使用することですが、私は確認した任意の公式ドキュメントを見つけることができません

From: [email protected], [email protected], chief bottle washer <[email protected]> 

これと私は私の電子メールをすべての電子メールクライアントが読むことができるようにしたいと思います。

+2

この質問と回答には驚くほど多くの否定的な票があります。情報は良いようです。なぜdownvotes? –

答えて

3

電子メールヘッダーフィールドは、RFC 5322で定義されています。 Fromヘッダーの複数の発信者の関連セクションは3.6.2です。デリミタを引用するための関連セクションは3.2.13.2.4です。

+0

私はこのRFCを正しく解釈していますが、これらのことは決して人間が読めるものではありません。解決策は二重引用符で囲みます。 "John Doe、bottle bottle washer" <[email protected]> ?? – Dalin

+0

さらに、カンマ(または他の違法な文字)が存在するかどうかにかかわらず、二重引用符ですべての名前をラップすることに何らかの害がありますか? – Dalin

+2

はい、それは正しい方法です。二重引用符を使用すると、表示名に二重引用符が含まれていれば、何も害を受けません。二重引用符をエスケープしてください。 –

18

@ Fls'Zenの答えを詳しく説明するには、適切な方法は二重引用符で囲むことです。

すべての名前を二重引用符で囲むことには問題ありません。表示名が\"(または一重引用符で置き換えられている場合)であれば二重引用符をエスケープしてください。しかし、もしあなたが仕様に完全になりたいなら、二重引用符を使う必要はありません。

すべての密な詳細については、電子メールヘッダーフィールドはRFC 5322で定義されています。 Fromヘッダーの複数の発信者の関連セクションは3.6.2であり、区切り記号の関連セクションは3.2.13.2.4です。

1

following regular expression matchesの場合は、メールの表示アドレスを引用する必要があります。 ASCII文字の場合

[^-A-Za-z0-9!#$%&'*+/=?^_`{|}~\s] 

、これはバックスラッシュで任意の二重引用符文字をエスケープし、二重引用符で文字列を囲むことによって行うことができます。非ASCII文字の場合は、より複雑なMIME escapingが必要です。

+1

空白文字は使用できます。これは '\ -A-Za-z0-9!#$%&\ '* + -/=?^ _ \' {|}〜\\ s] + 'であり、' \ s'は白スペース文字クラス。 – JonnyJD

+1

2番目の ' - 'が多すぎます。このように、 '+'と '/'の間のすべての文字を含みます。だから私のために働く完全な正規表現は次のようなものです: ''^--A-Za-z0-9!#$%&\ '* +/=?^ _ \ '{|}〜\\ s]文字列を囲むときにのみエスケープする必要があります。 ''^A-Za-z0-9!#$%& '* +/=?^ _ \ '{|}〜\\ s] +' – JonnyJD

+0

ありがとうございます私はあなたの提案を取り入れました。 –