2014-05-09 5 views
1

Я пытаюсь отправить электронные письма на несколько адресов электронной почты, используя php mailer, но не работает. Я попытался взорвать адреса, но ничего не работает. Вот мой кодКак отправлять электронные письма по нескольким адресам, используя phpmailer

HTML:

<input type="text" name="addresses" value="{$addresses}"/> 

выходной ток на входе в test1 @ gmail.com, test2 @ gmail.com, test3 @ gmail.com,

PHP для отправки по электронной почте:

/* Get Customer info*/ 
$sql = mysql_query("SELECT * FROM customer WHERE ID='$id' LIMIT 1"); 
$sql=mysql_fetch_array($sql); 
$fname=$sql['FIRST_NAME']; 
$lname=$sql['LAST_NAME']; 
$company=$sql['COMPANY']; 
$customer_email=$sql['EMAIL']; 

$email_addresses=$VAR['addresses']; 

if($email_addresses != "" && $customer_email !=""){  
$emailto=$email_addresses;    
}elseif($email_addresses == "" && $customer_email !=""){ 
$emailto=$customer_email; 
} 

/* Get Email Options */ 
$r=mysql_query("SELECT * FROM `email` WHERE `ID`=1"); 
$r=mysql_fetch_array($r); 
$emailfrom=$r['EMAIL_FROM']; 
$emailpriority=$r['EMAIL_PRIORITY']; 
$emailsubject=$r['EMAIL_SUBJECT']; 

/* Headers */ 
$subject = "$emailsubject"; 
$mailer = "$emailfrom"; 
$headers = "From: $mailer \r\n"; 
$headers .= "Reply-To: $mailer\r\n"; 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n boundary=\"PHP-mixed- ".$random_hash."\""; 
$headers .= "Importance: $emailpriority\r\n"; 

$email = new PHPMailer(); 
$email->From  = $mailer; 
$email->FromName = $mailer; 
$email->Subject = $subject; 
$email->Body  = $message; 
$email->AddAddress($emailto); 
$email->isHTML(true); 

$email->Send(); 

так что если у меня есть один получатель в поле ввода его отправить по электронной почте штраф, но если у меня есть несколько, разделив их, он не посылает электронную почту. Я пробовал $ emailto = explode (',', $ email_addresses); так как я отделяю письмо, но это не работает. любое предложение было бы замечательным.

ответ

11

Предположим, что у вас есть хорошие данные в переменной $ email_addresses.

Вам нужно изменить направление:

$email->AddAddress($emailto); 

в:

$addr = explode(',',$email_addresses); 

foreach ($addr as $ad) { 
    $email->AddAddress(trim($ad));  
} 
+0

hi marcin, данные в html находятся в правильном формате. [email protected], [email protected], я знаю, что вышеуказанное отправит отдельные электронные письма, как я могу отправить их все вместе? Я бы хотел, чтобы все увидели, кого я отправлю на – user3620142

+0

Они увидят. Только одно электронное письмо будет отправлено –

+0

, так что это работает, но я думаю, что вам не хватает его части, поэтому что произойдет, если вышеприведенный оператор if перейдет к $ emailto = $ customer_email; – user3620142

0

Это было предложено ранее, смотрите здесь: PHP mailer multiple address

сниппет:

Вам нужно вызвать метод AddAddress один раз для каждого получателя.

+0

h i jorg, я не хочу посылать foreach, я хотел бы отправить все вместе. – user3620142

+0

Это сообщение должно отправлять только одно сообщение с несколькими людьми в поле адреса. Вы вызываете отправить один раз. Ты это пробовал? – Jorg

+0

спасибо. это тоже работает – user3620142

0

1- взрываются будет возвращать массив адрес электронной почты, скажем, $ emailto

2- цикл этот массив и использование AddAddress метод:

foreach($emailto as $address){ 
$email->AddAddress($address,[optional:: name]); 
} 
+0

Благодарим вас за ответ. это тоже работает. :) – user3620142

Смежные вопросы