PHPMailer, отправляющий на несколько адресов, разделенных символом a,

Я использую PHPMailer для отправки электронной почты, я использую это, чтобы добавить адрес электронной почты для отправки:

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

мои адреса электронной почты поступают из базы данных, она работает нормально, но если столбец emailto в моей базе данных выглядит так:

 email1@domain.com,email2@domain.com 

Я получаю сообщение об ошибке: вы должны указать хотя бы один адрес электронной почты получателя.

как я могу обойти это, чтобы иметь возможность отправлять по нескольким адресам?

Solutions Collecting From Web of "PHPMailer, отправляющий на несколько адресов, разделенных символом a,"

Вы должны взорвать его, а затем добавить электронные письма.

 $addresses = explode(',', $result["emailto"]); foreach ($addresses as $address) { $email->AddAddress($address); } 
 //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!'); } 

Вы можете взорвать символ, а затем сделать foreach через массив, чтобы добавить адреса.

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

Проблема в том, что вам приходится делать несколько вызовов в AddAddress или использовать; вместо того,

Попробуйте сделать это:

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

Вы можете попробовать с массивом, что-то вроде этого:

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

Просто добавьте foreach (explode($result["emailto"], ',') as $email) {$email->AddAddress($email);}