Я использую wordpress с плагином WP Mail SMTP для отправки электронной почты через аутентифицированный SMTP. Теперь я открыл его на SMTP-сервере, чтобы мы могли там ретранслировать, а тестовая почта работает - сообщает true и приходит почта. Однако, если я попытаюсь отправить с помощью wp_mail из моего плагина, это не сработает - wp_mail возвращает false, и письмо не приходит. Я поместил некоторый код отладки в функцию wp_mail, в том числе, что я отлаживаю $e->getMessage()
из блока catch в try/catch в самом конце wp_mail (когда он пытается отправить фактическую почту). Это говоритWordpress SMTP mail: тестовая почта работает, но не wp_mail
SMTP Error: Could not authenticate.
Однако, как сказано, тестовые письма работают!
Затем я начал отлаживать объект phpmailer и сравнивать между моим вызовом wp_mail и тем, что для тестовой почты. Я заметил, что защищенный член exceptions
был прав для моего, а не для тестовой почты. Похоже, что глобальный phpmailer не существует при входе в wp_mail в моем вызове, поэтому он создается в wp_mail с использованием $phpmailer = new PHPMailer(true)
Если я изменяю это значение true на false (т. Е. Устанавливает исключения в false в объекте phpmailer), то не только wp_mail return true, но почта приходит!
Как я могу получить ошибки аутентификации, если я проверяю исключения, но почта все еще прибывает, если я не проверю исключения? Есть идеи?
Я запускаю wordpress 3.7.1 и WP Mail SMTP 0.9.3 в своей среде разработки. Я испытываю те же самые симптомы (тестовая почта работает, но не мои вызовы wp_mail) в wordpress 3.6.1 с версией 0.9.1 плагина
После обсуждения с автором плагина это было исправлено в версии 0.9.4 плагина – Adam