0

txtTo=email1,eamil2,email3;

foreach (array($_POST["txtTo"]) as $v) {
    $strTo = $v; 
    $flgSend = @mail($strTo,$strSubject,$strHeader1,$strHeader); 

    if($flgSend)  
    {  
    echo "$v Mail send completed.\n<br/>";  
    }  
    else  
    {  
    echo "$v Cannot send mail.\n<br/>";  
    } 
}

それは私が得るようにすべてに電子メールを送信しますemail1,eamil2,email3 Mail send completed.

を除いて

email1 Mail send completed.
eamil2 Mail send completed.
email3 Mail send completed.

なにが問題ですか?一緒にではなく、各人にメールを送信する方法は?

4

2 に答える 2

1

私の推測では、 $_POST["txtTo"] は既に配列になっています。次の行を変更してみてください。

foreach (array($_POST["txtTo"]) as $v) {

これに:

foreach ($_POST["txtTo"] as $v) {

HTML 入力名が txtTo[] の場合、それは配列として入ってくることを意味します。

レヴィ

于 2013-02-03T15:10:02.010 に答える
1

ループする前に、個別の電子メール アドレスを分割する必要があります。

$recipients = explode(',', $_POST['txtTo']);

foreach ($recipients as $v) {
    $strTo = $v; 
    $flgSend = @mail($strTo,$strSubject,$strHeader1,$strHeader); 

    if($flgSend)  
    {  
    echo "$v Mail send completed.\n<br/>";  
    }  
    else  
    {  
    echo "$v Cannot send mail.\n<br/>";  
    } 
}
于 2013-02-03T15:10:08.750 に答える