Я использую PHPMailer для отправки электронной почты, я использую это, чтобы добавить адрес электронной почты для отправки:
$email->AddAddress($result["emailto"]);
мои адреса электронной почты поступают из базы данных, она работает нормально, но если столбец emailto в моей базе данных выглядит так:
email1@domain.com,email2@domain.com
Я получаю сообщение об ошибке: вы должны указать хотя бы один адрес электронной почты получателя.
как я могу обойти это, чтобы иметь возможность отправлять по нескольким адресам?
Вы должны взорвать его, а затем добавить электронные письма.
$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);}