WP Mail SMTP версии 1.4.2 перестал отправлять электронные письма - PullRequest
1 голос
/ 22 апреля 2019

У меня есть плагин, который использует функцию wp_mail() для отправки электронных писем об ошибках формы. У меня также установлен плагин SMTP для WP Mail, чтобы использовать мои собственные настройки SMTP.

Всё работало отлично в течение нескольких месяцев с WP Mail SMTP версии 0.11.1. Но с тех пор, как я обновил плагин до версии 1.4.2, мои электронные письма перестали работать.

Из того, что я понял, wp_mail() не работает только внутри моего плагина. Если я сохраню его где-нибудь, как в файлах тем и т. Д., Письмо будет отправлено немедленно. Но из моего плагина я получаю это исключение каждый раз:

  "errors": {
    "wp_mail_failed": [
      "Could not instantiate mail function."
    ]
  },
  "error_data": {
    "wp_mail_failed": {
      "to": [
        "oibrahim@folio3.com"
      ],
      "subject": "Form Error",
      "message": "<dl><dt>Error Logged:<\/dt> <dd>{\"MembershipNumber\":null,\"Success\":false,\"Message\":\"The combination is incorrect\",\"contactInfo\":{\"PrimaryContactNumber\":null,\"AlternateNumber\":null,\"MobileNumber\":null,\"OtherPhone1\":null,\"Email\":null},\"membership\":{\"EffectiveDate\":null,\"ExpiryDate\":null,\"planInfo\":null,\"MembershipSubProgram\":null},\"address\":{\"HomeAddress\":null,\"MailingAddress\":null,\"BillingAddress\":null},\"slxConstantInfo\":[],\"Token\":null}<\/dd><dt>Timestamp:<\/dt> <dd>Monday, April 22nd, 2019 @ 03:16:30 PM<\/dd><dt>Referrer:<\/dt> <dd>renew\/step1<\/dd><dt>User:<\/dt> <dd> \n<br>\n<br>\n<br>\n<\/dd><\/dl>",
      "headers": [

      ],
      "attachments": [

      ],
      "phpmailer_exception_code": 2
    }
  }
}

Если я откажусь от плагина WPTP SMTP, все снова начнет работать нормально. Так что это верный вопрос с плагином. Возможно в моем плагине, где я вызываю функцию wp_mail(), настройки SMTP WP Mail еще не загружены или что-то в этом роде.

Любая быстрая помощь будет очень полезна, так как у меня есть этот код, работающий на производственном сайте. Заранее спасибо!

Редактировать: Чтобы добавить некоторые детали, тестовая электронная почта WP Mail SMTP работает нормально!

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Неважно.Я написал на форуме поддержки WP MAIL SMTP, но не получил ответа.Я понял, что объект phpmailer не содержит измененную настройку внутри моего плагина.Так что это обходной путь, который я реализовал просто для того, чтобы все заработало, хотя я знаю, что это не лучшее решение.

Я поместил следующее действие в init моего плагина:

/**
 *  Reconfigure SMTP setting to make WP MAIL SMTP plugin work
 */
add_action( 'phpmailer_init', 'reconfigure_smtp' );
function reconfigure_smtp( $phpmailer ) {
    $SMTPhost = get_option('smtp_host');
    $SMTPport = get_option('smtp_port');
    $FromEmail = get_option('mail_from');
    $FromName = get_option('mail_from_name');
    $phpmailer->isSMTP();     
    $phpmailer->Host =$SMTPhost;
    $phpmailer->Port = $SMTPport;
    $phpmailer->From = $FromEmail;
    $phpmailer->FromName = $FromName;
}

Это просто выбирает параметры, сохраненные в WP MAIL SMTP, а затем перенастраивает экземпляр phpmailer.Это просто результат отчаянной необходимости исправить вещи как можно скорее.

0 голосов
/ 23 апреля 2019

Ошибка could not instantiate mail function означает, что у вас не установлен локальный почтовый сервер, но это произойдет, только если вы используете mail() - оно не будет применяться, если вы используете SMTP.Похоже, ваши подозрения верны - конфигурация для wp_mail по какой-то причине не была загружена, или плагин SMTP не выполняет то, что должен.

...