他でも需要あるかもだから、軽い気持ちでやっつけようとしたのだが…。
PEAR::sendMail() を使うんだが、こいつに渡すヘッダーがちゃんとしてないと、
"Validation failed for" なエラーが発生する。
とりあえず、英数字以外を使う場合はダブルコーテーションで囲いましょう、と。
mb_encode_mimeheader
でも、「"hoge@fuga Co.,Ltd"」としても、やっぱりエラー。
"@"を消すと通る模様。
むぅ。。
上記参照元に、mimeエンコードしよう、というキーワード。
しかし…
echo mb_encode_mimeheader("hoge@fuga Co.,Ltd");↓
hoge@fuga Co.,Ltd
エンコードされず。。
こうなりゃヤケだ。
echo mb_encode_mimeheader("あhoge@fuga Co.,Ltd");echo "¥n"; echo mb_encode_mimeheader("あ");echo "¥n";エンコードして、「あ」の部分を除去すりゃいいだろ。
↓
=?UTF-8?B?wqTComhvZ2VAZnVnYSBDby4sTHRk?= =?UTF-8?B?wqTCog==?=「あ」ってどこまで?
もう、ヤケ×2。。
echo mb_encode_mimeheader("あ hoge@fuga Co.,Ltd");echo "¥n"; echo mb_encode_mimeheader("あ ");echo "¥n";↓
=?UTF-8?B?wqTCoiBob2dlQGZ1Z2EgQ28uLEx0ZA==?= =?UTF-8?B?wqTCoiA=?=
echo mb_encode_mimeheader("あ hoge@fuga Co.,Ltd");echo "¥n"; echo mb_encode_mimeheader("あ ");echo "¥n";↓
=?UTF-8?B?wqTCoiAgaG9nZUBmdWdhIENvLixMdGQ=?= =?UTF-8?B?wqTCoiAg?=よしゃ。「あ 」は「wqTCoiAg」っぽいぞ。
ちうわけで、
echo mb_decode_mimeheader("=?UTF-8?B?aG9nZUBmdWdhIENvLixMdGQ=?=");echo "¥n";↓
hoge@fuga Co.,Ltd
やたー。。でけたよ。
なんとなく、エンコード指定変更。
echo mb_decode_mimeheader("=?US-ASCII?B?aG9nZUBmdWdhIENvLixMdGQ=?=");echo "¥n";↓
hoge@fuga Co.,Ltd
ちゃんとした手順をご存じの方、ご教授下されまし。。。
Comments