2016-07-11 4 views
0

Я пытаюсь избавиться от следующего сообщения в одном из моих сценариев при использовании функции PHPMailer parseAddresses:PHPMailer parseAddresses - Как избавиться от «уведомления» сообщений

Примечания: Неизвестная: Необходимо использовать запятую отдельным адресам: ххх (errflg = 3) в Unknown в строке 0

$mailer = new PHPMailer(true); 
try { 
    $a = $mailer->parseAddresses('[email protected] xxx'); 
} 
finally { 
    ... 
} 

Я использую PHP 7.0.8 со следующими настройками обработки ошибок:

declare(strict_types = 1); 
error_reporting(E_ALL); 
ini_set('display_errors', 'stdout'); 

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

ответ

0

Я не уверен, о чем вы жалуетесь: это говорит вам, что у вас неправильный ввод, когда вы предоставляете неверный ввод! Способ избежать ошибки заключается в том, чтобы не пройти неправильный ввод!

Как говорит ошибка, она ожидает один или несколько адресов в разделителями запятыми формате RFC822 (не то, что вы предоставили), что может быть что-то вроде:

xxx <[email protected]>, yyy <[email protected]> 

Если вы не предоставите данные в том, что формат, он будет жаловаться, как вы видите. Это покрывает in the docs по методу parseAddress.

Ожидаете ли вы этого сделать что-то еще?

+0

Как я уже говорил в своем вопросе - я знаю, что ввод неправильный, но как я могу захватить предупреждающее сообщение до того, как оно будет показано пользователю? Подход try/catch не работает. И я не просто хочу «подавлять» ошибки или предупреждения. –

+0

Решение состоит в том, чтобы убедиться, что оно в правильном формате, прежде чем передать его. Цель 'parseAddresses' заключается в том, чтобы разбить действительную адресную строку RFC822 на массив адресов. Если это не то, что вы хотите сделать, не используйте его. – Synchro

+0

Спасибо. И чтобы проверить, находятся ли адреса в нужном формате заранее, я использую ... parseAddresses? –

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