みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

PHP foreachを使ってループしたい

こんばんは。
PHPで複数の宛先でメールを送信したいと思っております。
そこでメールフォームでまず
mail.php
foreach ($arr as $value) {
print'<input type="hidden" name="mail[]" value="'. $value .'">';
}
f-mail.php
$_POST['mail']で取得しそれを$valとして、print_r($val);で表示すると
Array ( [0] => アドレスA [1] =>アドレスB )
と表示されます。
その複数のアドレスを
//PEAR::MailCu
require_once '/Mail.php';

//PEAR::Mail_mimeCu
require_once '/mimeDecode.php';


//送信データを設定する

$recipients= $val;

$new_from = 'hoge@hoge.com';
$subject = mb_encode_mimeheader(mb_convert_encoding("$subject1", "JIS", "auto"), "JIS");
$body =$body1;

//メールを送信する
$headers = array();
$headers['From'] = $new_from;
$headers['To'] = $recipients;
$headers['Subject'] = $subject;
$headers['Sender'] = $new_from;


$mail = Mail::factory('sendmail');
$result = $mail->send($recipients, $headers, $body);

・LoopでToを変更しながら繰り返し送信する事がしたいのですがforeachでどう設定していいかわかりません。マニュアルもみたのですが、混乱してしまったので
ご指導、ご教授のほど宜しくお願い致します。

投稿日時 - 2011-03-01 22:33:40

QNo.6560655

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

こんにちは。

foreach 文については次のページをご覧になって下さい。

http://www.php.net/manual/ja/control-structures.foreach.php



$_POST["mail"] にデータがあるのでしたら以下のような実装になるかと思います。

※値がメールアドレスかどうかの入力チェックは別途コーディングが必要です。


$headers = array();
$headers['From'] = $new_from;
$headers['Subject'] = $subject;
$headers['Sender'] = $new_from;

foreach ($_POST["mail"] as $recipients) {

$headers['To'] = $recipients;
$mail = Mail::factory('sendmail');
$result = $mail->send($recipients, $headers, $body);
}

投稿日時 - 2011-03-04 23:26:39

あなたにオススメの質問