風柳メモ

ソフトウェア・プログラミング関連の覚書が中心

「お名前.com」の共用サーバSDで、メールのToに名前を入れられない件

単に、mb_send_mail()

bool mb_send_mail ( string $to , string $subject , string $message [, string $additional_headers = NULL [, string $additional_parameter = NULL ]] )

PHP: mb_send_mail - Manual

で送ったメールの宛先を、

To: 某氏 <foo@bar.com>

みたいな感じにしたかっただけなのだけれど、どうやっても送れない。
ちなみに From: 等はきちんと日本語で遅れているので、エンコードの問題でもないと思われる。

というか、$to に

FOO <foo@bar.com>

とか

<foo@bar.com>

みたいに、日本語を含めていなくても、だめ。
もちろん、単に "foo@bar.com" なら送信可能。


さんざん悩んだ挙句、さくらのレンタルサーバで試してみたら、あっさり送信できた。

php -r "mb_language('Japanese'); mb_internal_encoding('utf-8'); mb_send_mail(mb_encode_mimeheader('某氏','iso-2022-jp'
) . ' <foo@bar.com>', 'TEST', 'TEST', 'From: ' . mb_encode_mimeheader('誰某', 'iso-2022-jp') . ' <hoge@bar.com>');"

でちゃんと、

From: 誰某 <hoge@bar.com>
To: 某氏 <foo@bar.com>

みたいな感じに受信されている。


ということは……バージョン違いによる、徒労ということ?
PHPは、「お名前.com」は Version 5.2.12、「さくら」は Version 5.3.21。
…もう寝る(泣)。