1

私は PHPMailer を使用してメールを送信しています。これを使用して、送信先のメールアドレスを追加します。

$email->AddAddress($result["emailto"]);

メール アドレスがデータベースから取得されている場合、問題なく動作しますが、データベースの emailto 列が次のようになっている場合:

email1@domain.com,email2@domain.com

少なくとも 1 つの受信者の電子メール アドレスを指定する必要があるというエラーが表示されます。

複数のアドレスに送信できるようにするにはどうすればよいですか?

4

6 に答える 6

7

それを展開してから、電子メールを追加する必要があります。

$addresses = explode(',', $result["emailto"]);
foreach ($addresses as $address) {
    $email->AddAddress($address);
}
于 2013-10-16T10:03:31.647 に答える
2
//Explode by comma so that we get an array of emails.
$emailsExploded = explode(",", $result["emailto"]);

//If the array isn't empty, loop through
if(!empty($emailsExploded)){
    foreach($emailsExploded as $emailAddress){
        $email->AddAddress(trim($emailAddress));
    }
} else{
    //This should not be the case.
    throw new Exception('No emails found!');
}
于 2013-10-16T10:03:54.837 に答える
1

, 文字で爆発を実行してから、配列を介して foreach を実行してアドレスを追加できます。

$addresses = explode(',',$result["emailto"]);
foreach ( $addresses as $address ){
    $email->AddAddress($address);
}
于 2013-10-16T10:04:05.103 に答える
0

追加するだけforeach (explode($result["emailto"], ',') as $email) {$email->AddAddress($email);}

于 2013-10-16T12:24:11.980 に答える
0

You can try with an array, something like this :

$array = explode(",",$result["emailto"]);
$nb = count($array);
for ($i=0;$i<$nb;$i++) {
    $email->AddAddress($array[$i]);
}
于 2013-10-16T10:05:20.610 に答える
0

問題は、複数の呼び出しを行うAddAddressか、; を使用する必要があることです。の代わりに、

これを試してください:

$email_array = explode(',', $result['emailto']);
for($i = 0; $i < count($email_array); $i++) {
    $email->AddAddress($email_array[$i]);
}
于 2013-10-16T10:04:01.447 に答える