そこには!
1 つのメール件名ですべてのインライン エンコーディングを照合し、件名文字列を utf8 で作成したいと考えています。
いくつかの例:
[Listname | Topic123] =?utf-8?Q?encodedtext?=
=?iso-8859-1?q?this=20is=20some=20text?=
Klartext-Betreff
[Listname | Topic123] =?utf-8?Q?encodedtext?= =?iso-8859-1?q?this=20is=20some=20text?=
=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
=?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=
また、2 つの異なるエンコーディングのメールを受け取りました (最後の行の例)。
電子メールでは、件名が複数の行に分割され、各行 (最初の行を除く) が少なくとも 1 つの空白で始まる場合もあります。
だから私は解析する正規表現を探しています:
パート+
Part は次のいずれかです。
- スペースを含むテキスト
- =?charset?encoding?encoded-text?=
私はそれが次のようなものになると思います:
ENC = (=\?)([A-Za-z0-9-]*)(\?)([A-Za-z0-9-]*)(?)([Any Character])(\?=)
Part = any character that doesnt match to ENC or ENC