先日、作成したメールフォームから、BCCで送信できないトラブルがありました。プログラムは、php5.2のmb_send_mail関数を使用し、sendmailで送信しています。メール送信のエラーログファイルを見ると、BCCで送信したユーザー名が全て「deamon」になっていました。sendmailについて調べると、送信時の引数に「-t」がない場合、ヘッダーの情報を無視して配信するようです。phpの設定を確認すると「-t」がありませんでした。
 今回は、php.iniファイルのsendmail設定を変更することでエラーの回避をしました。

1. 実際にphpに設定されているsendmailの設定を確認
[root@localhost ~]# php -r ‘phpinfo();’ | grep sendmail
(結果)
sendmail_from => no value => no value
sendmail_path => /sbin/sendmail -i => /sbin/sendmail -i
Path to sendmail => /sbin/sendmail -i

「-t」が省略されているのを確認

2. 設定の変更

php.iniファイルの変更

[root@localhost ~]# vi /usr/local/lib/php.ini
変更前
; For Unix only. You may supply arguments as well (default: “sendmail -t -i”).
sendmail_path = /sbin/sendmail -i
↓変更後 デフォルト状態に変更
; For Unix only. You may supply arguments as well (default: “sendmail -t -i”).
;sendmail_path =

3. 変更状態の確認
[root@localhost ~]# php -r ‘phpinfo();’ | grep sendmail
(結果)
sendmail_from => no value => no value
sendmail_path => /sbin/sendmail -t -i => /sbin/sendmail -t -i
Path to sendmail => /sbin/sendmail -t -i

以上の変更で、BCC、CCでの送信が可能になりました。

(注意)
 今回は、phpの設定ファイルを変更して問題を回避しました。もし、変更できない場合は、BCC、CCで送信するのではなくTOで複数送信することを検討してください。

複数送信するには、メールアドレスをカンマで区切って入れてください。
“test@test.jp”

“test@test.jp,abc@second.org”