PHP を使用して電子メールを送受信しようとしています。これまでのところ、関数を使用して特殊文字をエンコードする必要があることがわかりましたが、mb_encode_mimeheader()
スペースをエンコードする必要はありません。
また、アドレスファイルの括弧が機能しないこともわかりました: (括弧付きのヘッダーを読み取るときに、PHP の imap_fetch_overview() 関数にエラーはありますか? )。たとえば、PHP は header-section にアクセスできませんが、header-sectionFrom: Admin [] <user@mail.tld>
を読み取ることはできますFrom: "Admin []" <user@mail.tld>
。
そのため、メール ヘッダーでは明らかに括弧が特別な意味を持ちます (少なくとも PHP の場合)。Mailheader の特殊文字には何があり、その意味は何ですか?また、どこでエンコード/引用する必要がありますか?
たとえば、件名はヘッダーの一部でもありますが、PHP では件名の角括弧に問題はありません。
引用符が問題の解決に役立つようです ( https://www.rfc-editor.org/rfc/rfc5322#section-3.2.4 - これが PHP の問題なのか、メールヘッダーが正しくありません)。しかし、引用符を使用する方法と、引用符によって何がエスケープされるのでしょうか?
https://www.rfc-editor.org/rfc/rfc5322#section-3.2.4には次のように書かれています。
アトムで許可されている文字以外の文字を含む文字列は、文字が引用符 (DQUOTE、ASCII 値 34) 文字で囲まれた引用符付き文字列形式で表すことができます。
それでは、各文字を個別に「エスケープ/引用」する必要がありますか
From: Admin "[""]" <user@mail.tld>
または、すべてをまとめて引用してもよろしいですか?
From: "Admin []" <user@mail.tld>
しかし、他の制御シーケンスが引用符で囲まれている場合はどうなるでしょうか? たとえばÄÖÜ
、文字列内に特殊文字があり、これは にエンコードされてい=?UTF-8?B?w4PChMODwpbDg8Kc?=
ます。では、RFC によれば、「引用されてエンコードされた」文字列は問題ないのでしょうか?
From: "Admin [=?UTF-8?B?w4PChMODwpbDg8Kc?=]" <user@mail.tld>