WinServer 2012 r2 + PHP (wamp64) Ошибка PHPMailer «Не удалось создать экземпляр почтовой функции» - PullRequest
2 голосов
/ 06 марта 2019

Я попробовал все шаги, которые предлагаются в win server 2012 r2, относится к ответу, включая связанные с ним ответы, а также к конкретному PHPMailer.

Но, тем не менее, я работаю с той же проблемой. Кроме того, мы проверили, что порт 25 не имеет проблем с брандмауэром.

Если кто-нибудь может мне помочь, это очень ценится.

Примечание
Win server 2012 r2 относится ответ
PHPMailer ответ

ошибка сервера ответ Спасибо

UPDATE

//To test is via basic mail function
/*
mail("from_to_email@example.com", "Test Subject", "Test Message");
*/

//To Test via PHPMailer 

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'vendor/phpmailer/phpmailer/src/Exception.php';
require 'vendor/phpmailer/phpmailer/src/PHPMailer.php';
require 'vendor/phpmailer/phpmailer/src/SMTP.php';

//PHPMailer Object
$mail = new PHPMailer;

//From email address and name
$mail->From = "from_email@example.com";
$mail->FromName = "Full Name";

//To address and name
$mail->addAddress("to_email@example.com"); //Tried $mail->addAddress("to_email@example.com", "test name"); and third param too. 

//Send HTML or Plain Text email
$mail->isHTML(true); //Tried with false too.

$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPDebug = 3;
$mail->SMTPSecure = 'ssl';

// optional
// used only when SMTP requires authentication  
$mail->SMTPAuth = true;
$mail->Username = SMTP_EMAIL_HERE;
$mail->Password = SMTP_PASS_HERE;

$mail->Subject = "Subject Text";
$mail->Body = "<i>Mail body in HTML</i>";
$mail->AltBody = "This is the plain text version of the email content";
if(!$mail->send()) 
{
    echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
    echo "Message has been sent successfully";
}

Даже, я попробовал свои учетные данные SMTP через онлайн SMTP Tool , и он работает нормально, но приведенный выше код не работает.

ПРИМЕЧАНИЕ: Я проверил доступность модулей PHP / Apache, и это не проблема для модуля.

1 Ответ

1 голос
/ 07 марта 2019

Две ошибки.

Вы не звоните isSMTP(), поэтому ни одна из ваших настроек SMTP не имеет никакого эффекта, и она использует функцию mail(), как я сказал в своем комментарии.

В конфигурации SMTP вы используете SMTPSecure = ‘ssl’ для порта 587. Эта комбинация не будет работать; либо перейдите на порт 465, либо переключитесь в режим ’tls’.

Все примеры кода SMTP, предоставляемые с PHPMailer, следуют этому шаблону, и он подробно описан в руководстве по устранению неполадок.

В общем, именно поэтому вам необходимо выполнить поиск, прежде чем публиковать, читать документы и публиковать свой код в своем вопросе.

...