2013-10-16 40 views
1

我使用的PHPMailer發送電子郵件,我用它來添加電子郵件地址發送到:的PHPMailer發送到由分隔的多個地址,

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

我的電子郵件地址是從數據庫中來,它的工作原理正常,但如果我的數據庫中emailto列的樣子:

[email protected],[email protected] 

我得到一個錯誤說您必須提供至少一個收件人的電子郵件地址。

我怎樣才能得到這個能夠發送到多個地址?

回答

5

你應該爆炸它,然後添加電子郵件。

$addresses = explode(',', $result["emailto"]); 
foreach ($addresses as $address) { 
    $email->AddAddress($address); 
} 
+0

這工作得很好,但是你有完全一樣的答案@Hans杜波依斯和林不知道誰先回答 – charlie

+0

懸停的時間,我打了他1分鐘;) – casraf

+0

所以你做:)看起來像他抄襲你! :D謝謝 – charlie

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!'); 
} 
0

的問題是,你必須多次調用做AddAddress或使用;代替,

嘗試這樣做:

$email_array = explode(',', $result['emailto']); 
for($i = 0; $i < count($email_array); $i++) { 
    $email->AddAddress($email_array[$i]); 
} 
1

你可以做的,性格爆炸,然後做一個foreach槽陣列添加不會忽略。

$addresses = explode(',',$result["emailto"]); 
foreach ($addresses as $address){ 
    $email->AddAddress($address); 
} 
+0

這工作正常,但你有@Chen Asraf完全相同的答案,我不知道誰回答第一 – charlie

0

你可以用一個陣列,這樣的嘗試:

$array = explode(",",$result["emailto"]); 
$nb = count($array); 
for ($i=0;$i<$nb;$i++) { 
    $email->AddAddress($array[$i]); 
} 
0

只需添加foreach (explode($result["emailto"], ',') as $email) {$email->AddAddress($email);}

相關問題