以下のURLのライブラリを使えば設定のみなので楽です。
http://pear.php.net/package/Mail_Queue
一括で送信できるメールの件数の目安ですが、せいぜい60くらいにした方がいいです。送り先に携帯電話のメールアドレスが多い場合はもっと減らした方が安全です。
CSVのデータはDBに入れましょう。
以下PEARから持ってきたサンプル。(1回で最大50件送信)
require_once "Mail/Queue.php";
$db_options['type'] = 'db';
$db_options['dsn'] = 'mysql://user:password@host/database';
$db_options['mail_table'] = 'mail_queue';
$mail_options['driver'] = 'smtp';
$mail_options['host'] = 'localhost';
$mail_options['port'] = 25;
$mail_options['auth'] = false;
$mail_options['username'] = '';
$mail_options['password'] = '';
$mail_queue =& new Mail_Queue($db_options, $mail_options);
$from = 'user@server.com';
$from_name = "Chief";
$recipient = "user2@server.com";
$recipient_name = "admin";
$message = 'Hi! This is test message!! :)';
$from_params = empty($from_name) ? '"'.$from_name.'" <'.$from.'>' : '<'.$from.'>';
$recipient_params = empty($recipient_name) ? '"'.$recipient_name.'" <'.$recipient.'>' : '<'.$recipient.'>';
$hdrs = array( 'From' => $from_params,
'To' => $recipient_params,
'Subject' => "test message body" );
$mime =& new Mail_mime();
$mime->setTXTBody($message);
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
$mail_queue->put( $from, $recipient, $hdrs, $body );
$seconds_to_send = 3600;
$delete_after_send = false;
$id_user = 7;
$mail_queue->put( $from, $recipient, $hdrs, $body, $seconds_to_send, $delete_after_send, $id_user );
$max_ammount_mails = 50;
$mail_queue =& new Mail_Queue($db_options, $mail_options);
$mail_queue->sendMailsInQueue($max_ammount_mails);
既存のをカスタマイズするんでしょうか?
>1通づつ送るのがいいのかなと思っています
負荷がかかると思いますよ。
BCCで1通のほうが、送信先の展開はメールサーバーで
やってくれると思われるので。
BCCで展開するのは、知りませんでした。
ちなみに、その場合、形式が不適切なメールアドレスが含まれる場合、そのアドレス以外の全てのメールに対して送信ができるのでしょうか?
確か、toに複数設定した場合、一つでもダメなアドレスがあると、他もだめだった気がします。
確かにCGIでわざわざ1通ずつ送ると明記されているものが
ありましたから。
勉強になりました。
>以外の全てのメールに対して送信ができるのでしょうか?
>確か、toに複数設定した場合、一つでもダメなアドレスがあ
>ると、他もだめだった気がします。
実際試してみましたが、そういう事実を確認できません。
Yahooメールで、Toのパターンを調べましたが、
メールアドレスが存在するものには、メールが送られてます。
ないものは、デーモンメールとして、送信者に戻ってくるだけ
です。
以前何かのプログラムをしたときに、toか、CCか何かに複数メールを設定した場合、ダメなものがあると、全部だめになったような記憶があります。