вы можете использовать try-catch
блок, где вы установите на, куб.см и ОЦК адреса электронной почты
от the manual..:
Если добавить получателей автоматически на основе источника данных, который может содержать недействительные адреса электронной почты, вы можете предотвратить возможные исключения путем проверки адресов с использованием Swift_Validate::email($email)
и только добавление адреса, подтвердите. Другим способом было бы обернуть вызовы в блоке try-catch и обработать setTo()
, setCc()
и setBcc()
в блоке catch и обработать Swift_RfcComplianceException
.
Таким образом, вы можете использовать try-catch
на $message
объекта:
$message = Swift_Message::newInstance();
$emails = array(
'[email protected]' => 'Receiver Name',
'[email protected]' => 'A name',
'[email protected]' => 'Other Name'
);
// loop through emails and set the individually to catch exceptions
foreach($emails as $email => $name)
{
try {
$message->setTo(array($email => $name));
} catch(Swift_RfcComplianceException $e) {
echo "The email ".$email." seems invalid";
}
}
// And do the same thing with cc and bcc emails
$ccEmails = array(
'[email protected]' => 'CC Receiver Name'
);
foreach($ccEmails as $email => $name)
{
try {
$message->setCc(array($email => $name));
} catch(Swift_RfcComplianceException $e) {
echo "The email ".$email." seems invalid";
}
}
Вы можете установить провалы на переменную, если вы в зависимости от того, как вы хотите, чтобы справиться с ними.
Edit: Если у вас есть массив пользователей с отдельными именами и фамилиями вы можете пользователя ниже:
$users = array(
array('email' => '[email protected]', 'first' => 'Receiver', 'last' => 'Name'),
array('email' => '[email protected]', 'first' => 'A', 'last' => 'name'),
array('email' => '[email protected]', 'first' => 'Other', 'last' => 'Name')
);
// loop through users and set the individually to catch exceptions
foreach($users as $user)
{
try {
$message->setTo(array($user['email'] => $user['first'].' '.$user['last']));
} catch(Swift_RfcComplianceException $e) {
echo "The email ".$user['email']." seems invalid";
}
}
Большое спасибо за Ваш быстрый ответ. Я попробую метод catch. Я хочу отобразить все отклоненные приемники, включая Cc и Bcc, чтобы исправить их в моей базе данных. Кстати, может ли он расколоть массив-приемник в виде: emailadress - firstname - secondname? Потому что имена в моей БД расщепляются в первом и втором именах – estebu