Qdmailのエラーの意味が・・・
メールを送る際は、Qdmail + Qdsmtpを活用するようにしている(特に数通以上送信する場合)。今日プログラムを作っていてエラーが出た。
Qdmail error: Qdmail Version 1.2.6b ,PHP Version 5.1.6
Qdmail error: OS Linux ; PHP Version 5.1.6 ; Qdmail version 1.2.6b
php.ini status: mb_language = Japanese ; mb_internal_encoding = UTF-8 ; mb_detect_order = ASCII,JIS,UTF-8,EUC-JP,SJIS
Qdmail Status debug: 0, log: 0, errorlog: 0
Qdmail error: No recipient line -> 2849
Qdmail error: Error happen, see upper line -> 2194
Qdmail error: Send Error line -> 2115
このメッセージを見ると「No recipient line」とあることから、toの指定をしていないように読み取れる。しかし実際はプログラムで指定してある。
$qdMailObj->to($email);
ちなみに上記一行の結果をvar_dumpしてみると、ちゃんとtrueを返してくれる。解せない。
結論から言うと、$emailにはちゃんとメールアドレスが入っていたのだが、これにゴミが付いていた(メールアドレスの後ろに半角スペース)。だから事前にtrimすることで解決できた。
でもそのくらいのことがダメなんだったらtoするときにfalseを返して欲しかった(まぁ、メールアドレスのチェックまでライブラリに頼るのか、という意見もあるかとは思うが)。もしくはエラーメッセージがもう少し分かりやすければよかったのに、と思った。