PHP скрипт
require '../PHPMailerAutoload.php';
//Create a new PHPMailer instance
//Passing true to the constructor enables the use of exceptions for error handling
$mail = new PHPMailer(true);
try {
$mail->Port = 25;
$mail->Timeout = 10;
$mail->isSMTP();
$mail->SMTPDebug = 3;
$mail->CharSet = 'UTF-8';
$mail->Host = 'mail1.ClientWeb.com';
$mail->SMTPAuth = true;
$mail->Username = 'test_mail@ClientWeb.com';
$mail->Password = 'pwd';
$mail->setFrom('from@example.com', 'First Last');
$mail->addReplyTo('replyto@example.com', 'First Last');
$mail->addAddress('keprta.martin@gmail.com', 'Martin Keprta');
$mail->Subject = 'test';
$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
$mail->AltBody = 'This is a plain-text message body';
$mail->addAttachment('images/phpmailer_mini.png');
$mail->send();
echo "Message sent!";
} catch (phpmailerException $e) {
echo $e->errorMessage();
} catch (Exception $e) {
echo $e->getMessage();
}
Описание проблемы
Клиент имеет скрипт на своем сервере, который, очевидно, работает. Я пытаюсь подключиться к его серверу, но это возможно, но при попытке отправить письмо появляется следующая ошибка
2017-05-07 18:31:57 Connection: opening to mail1.warmacher.com:25, timeout=10, options=array ( )
2017-05-07 18:31:57 Connection: opened
2017-05-07 18:32:07 SERVER -> CLIENT:
2017-05-07 18:32:07 CLIENT -> SERVER: EHLO localhost
2017-05-07 18:32:17 SERVER -> CLIENT:
2017-05-07 18:32:17 SMTP ERROR: EHLO command failed:
2017-05-07 18:32:17 CLIENT -> SERVER: HELO localhost
Насколько я понимаю, соединение установлено, но электронная почта по какой-то причине не отправляется.
Шаги, которые я предпринял, прежде чем спросить это благородное сообщество
Что-то не так с почтовым сервером, к которому вы подключаетесь. Если я telnet mail1.warmacher.com 25
, подключается, но не отвечает. Это не противодействие поздней задержке, оно просто сломано. Заданный вами короткий тайм-аут не дает максимальный срок ожидания (5 минут), который позволяет SMTP, хотя в любом случае он не помогает. Ваш код в порядке — вам нужно починить почтовый сервер.