Мне нужно отправить ежедневный адрес электронной почты, содержащий обновленный контент сайта, примерно 200 пользователям. Способ, которым я настроил это, - отправить одно письмо на каждые 20 пользователей (все BCC'd), так что отправляется только около 10 общих писем. Я использую функцию Wordpress wp_mail() для отправки вместе с плагином WP-Mail-SMTP, чтобы отправлять сообщения электронной почты с помощью предварительно настроенной учетной записи gmail. Все работало нормально около недели назад. Теперь, внезапно сценарий ломается после отправки 5 писем.wp_mail break in loop
//SEND THE EMAIL TO 20 USERS AT A TIME
foreach ($users as $user) {
array_push($mailgroup, $user->user_email);
if(count($mailgroup) == 20) {
$headers = $headersBase . 'Bcc: '. implode(',', $mailgroup);
wp_mail('', 'Email Update', $strBody, $headers);
$sentEmailCount++;
$headers = '';
$mailgroup = array();
}
$sentUserCount++;
}
Я считаю, что причина этого заключается в том, что адрес электронной почты, в конечном отправленное сообщение становится подпрыгнул, а затем по какой-либо причине цикл останавливается. Есть ли способ игнорировать любые ошибки и просто продолжать цикл, независимо от того, отскакивает ли сообщение электронной почты или нет?
Предполагая, что wp_mail будет ломаться, просто поместите его в try catch или просто подавите с помощью знака '@' ... – We0
Если это заставляет скрипт остановиться, тогда он должен регистрировать ошибку - почему бы вам не сделать знаете, что это за ошибка? Кроме того, даже без ошибки, ваш код не сможет отправить электронное письмо последней группе получателей, если он не кратен 20. – symcbean
@symcbean: Я запускаю скрипт, используя метод wp_schedule_event(). Он работает каждую ночь в фоновом режиме и отправляет электронные письма большому числу пользователей. Я не могу проверить его, не отправляя электронные письма, которые раздражали бы моих конечных пользователей. Как я поймаю ошибку и зарегистрирую ее? Будет ли попытка/улов работать здесь с wp_mail? Я добавил «error_reporting (0)» в начало сценария, чтобы игнорировать ошибки, и я планирую посмотреть, что произойдет сегодня вечером. Мысли? PS: Я отправляю одно последнее письмо в мой пост-цикл сценария, если есть больше адресов. – lamarant