Intereting Posts
сортировать коллекцию Magento ПОСЛЕ загрузки Изображение html2canvas save не работает PHP sleep () вызывает высокую загрузку процессора Переменные сеанса PHP не передаются на следующую страницу Потерянное соединение с сервером MySQL при «считывании исходного пакета связи», системная ошибка: 0 Недопустимая аббревиатура сокращенного времени DST для Австралии при использовании date_default_timezone_set PHP-браузер, загружающий изображение, Facebook Мой файл .htaccess не работает Процент числа из другого номера Как вставить несколько данных в таблицу Является ли это хорошей функцией пароля хеширования в PHP? Если нет, почему бы и нет? Как получить GMT дату в yyyy-mm-dd hh: mm: ss в PHP CkFinder Режим «Редактировать», как установить настройки «Сохранить изменения» («Перезаписать файл») PHP Regex для получения идентификатора видео youtube? Предложения / Трюки для дросселирования скрипта PHP

Ошибка нескольких получателей PHPmailer

У меня есть следующий код с 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 );
  • модуль openssl включен (выполните phpinfo() и выполните поиск OpenSSL)

Я просто просмотрел исходный код PHPMailer, сообщение «Не удалось создать почтовую функцию» означает, что mail() возвращает false.

Можете ли вы попробовать ту же функцию, но с двумя разными адресами электронной почты, которые, как вы знаете, обычно принимают электронные письма?

Попробуйте загрузить последнюю версию PHPMailer, если вы ее не используете, у нее есть исправления ошибок. Скорее всего, ваш почтовый класс запутан.

«Не удалось создать почтовую функцию». Просто проверьте работу почтовой программы или нет. много раз эта ошибка возникает из-за ограничений со стороны хостинг-провайдера. Много времени провайдер хостинга блокирует вашу функцию рассылки, тогда обычно вы получаете эту ошибку