У меня есть следующий код с PHPmailer:
$tomailn[0] = 'imap2@gazler.com'; $tomailn[1] = 'imap@gazler.com'; foreach($tomailn as $value) { $mail->AddAddress($value, ''); }
Но я получаю сообщение об ошибке «Не удалось создать почтовую функцию».
Если я удалю элемент из массива, он отлично работает, но дает ошибку при попытке добавить 2 или более адресов. Есть идеи, почему это происходит? Есть ли способ добавить несколько адресов электронной почты?
Привет, Газлер.
Выкопайте исходный код. Измените PHPMailer.php и найдите function MailSend
. (В версии 5.0.2 это строка 564.)
В указанной функции удалите подавитель @ ошибки из каждого вызова в mail()
. Убедитесь, что error_reporting настроен на что-то разумное для отладки. При разработке выберите что-то вроде этого:
error_reporting (E_ALL | E_STRICT); ini_set ('log_errors', 'On'); ini_set ('display_errors', 'On');
Посмотрите, есть ли PHP какие-либо ошибки. PHPMailer только генерирует исключение для создания экземпляра, когда последний вызов mail()
возвращает что-то false или если $rt
никогда не устанавливается, что означает, что if ($this->Sender != '' && strlen(ini_get('safe_mode'))< 1)
оценивается как true
.
Вы используете безопасный режим? Что $mailer->Sender
PHP Mailer $mailer->Sender
и ini_get('safe_mode')
? (Мое предположение: если вы не работаете в безопасном режиме, но настроили его как Off
, этот код вернет true
.)
вы попробовали просто $mail->AddAddress($value);
?
В большинстве случаев эта ошибка возникает, когда from
заголовка не задано или недействительно. Попробуйте установить эту переменную:
$mail->From = 'valid@mailaddress.com';
Если он все еще не работает, попробуйте выполнить одно из следующих действий:
mail
на сервере (и настройки php.ini
); phpinfo()
и выполните поиск OpenSSL) Я просто просмотрел исходный код PHPMailer, сообщение «Не удалось создать почтовую функцию» означает, что mail()
возвращает false.
Можете ли вы попробовать ту же функцию, но с двумя разными адресами электронной почты, которые, как вы знаете, обычно принимают электронные письма?
Попробуйте загрузить последнюю версию PHPMailer, если вы ее не используете, у нее есть исправления ошибок. Скорее всего, ваш почтовый класс запутан.
«Не удалось создать почтовую функцию». Просто проверьте работу почтовой программы или нет. много раз эта ошибка возникает из-за ограничений со стороны хостинг-провайдера. Много времени провайдер хостинга блокирует вашу функцию рассылки, тогда обычно вы получаете эту ошибку