У меня проблема с phpmailer, на моем локальном хосте все в порядке, я получаю почту обратно из своего приложения php, но когда я использую тот же docker-контейнер в моей промежуточной среде, phpmailer возвращает успех, но я больше не получаю почту в своем почтовом ящике: /
Вот некоторый код:
//create an instance of PHPMailer
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host='ssl0.ovh.net';
$mail->Port = 465;
$mail->Username = '[email protected]';
$mail->Password = 'mypassword';
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Priority = 3;
$mail->CharSet = "ISO-8859-1"; //ISO-8859-1 _ utf-8
$mail->setFrom('[email protected]');
$mail->AddAddress('[email protected]');
$mail->Subject='New mail';
$mail->Body = "Name: " . $_POST['inputName'] . "\r\n
Mail : " . $_POST['inputEmail'] . "\r\n
Message: \r\n\r\n" . stripslashes($_POST['inputMessage']);
$mail->SmtpClose();
if(!$mail->send()) {
$data = array('success' => false, 'message' => 'Message could not be sent. Mailer Error: ' . $mail->ErrorInfo);
echo json_encode($data);
exit;
}
$data = array('success' => true, 'message' => 'Thanks! We have received your message.');
echo json_encode($data);
Вот ответ, который я имею на сервере:
2017-08-09 07:37:48 CLIENT -> SERVER: EHLO staging.thomasmorice.com
2017-08-09 07:37:48 CLIENT -> SERVER: AUTH LOGIN
2017-08-09 07:37:48 CLIENT -> SERVER: aGD76QHRob21hc21efmljZSaajb20=
2017-08-09 07:37:48 CLIENT -> SERVER: QnhuNnJDWW5lOp8A
2017-08-09 07:37:48 CLIENT -> SERVER: MAIL FROM:<[email protected]>
2017-08-09 07:37:48 CLIENT -> SERVER: RCPT TO:<[email protected]>
2017-08-09 07:37:48 CLIENT -> SERVER: DATA
2017-08-09 07:37:48 CLIENT -> SERVER: Date: Wed, 9 Aug 2017 07:37:48 +0000
2017-08-09 07:37:48 CLIENT -> SERVER: To: [email protected]
2017-08-09 07:37:48 CLIENT -> SERVER: From: [email protected]
2017-08-09 07:37:48 CLIENT -> SERVER: Subject: New mail
2017-08-09 07:37:48 CLIENT -> SERVER: Message-ID:<[email protected]>
2017-08-09 07:37:48 CLIENT -> SERVER: X-Priority: 3
2017-08-09 07:37:48 CLIENT -> SERVER: X-Mailer: PHPMailer 5.2.22 (https://github.com/PHPMailer/PHPMailer)
2017-08-09 07:37:48 CLIENT -> SERVER: MIME-Version: 1.0
2017-08-09 07:37:48 CLIENT -> SERVER: Content-Type: text/plain; charset=ISO-8859-1
2017-08-09 07:37:48 CLIENT -> SERVER:
2017-08-09 07:37:48 CLIENT -> SERVER:
2017-08-09 07:37:48 CLIENT -> SERVER: Name: thomas test mail
2017-08-09 07:37:48 CLIENT -> SERVER:
2017-08-09 07:37:48 CLIENT -> SERVER: Mail : [email protected]
2017-08-09 07:37:48 CLIENT -> SERVER:
2017-08-09 07:37:48 CLIENT -> SERVER: Message:
2017-08-09 07:37:48 CLIENT -> SERVER:
2017-08-09 07:37:48 CLIENT -> SERVER: test mail
2017-08-09 07:37:48 CLIENT -> SERVER:
2017-08-09 07:37:48 CLIENT -> SERVER: .
2017-08-09 07:37:48 CLIENT -> SERVER: QUIT
{"success":true,"message":"Thanks! We have received your message."}
Я действительно застрял на этом, потому что у меня точно такая же конфигурация на локальном хосте и в контейнере Docker сервера)
Может это из-за моего МХ в днс? Я заблудился, у кого-то есть подсказка?
Большое спасибо за вашу помощь
— редактировать
Что-то странное после некоторого исследования, используя этот сайт чтобы проверить поиск MX с помощью инструмента MX, я вижу, что когда я запускаю тест с моим локальным сервером: thomasmorice.dev, я получаю запись dns: / как это может быть, так как это мой локальный сервер: /
Делая то же самое с staging.thomasmorice.com, я получаю ошибку DNS .. На мой взгляд, это должно быть наоборот … Я действительно запутался
Итак, очевидно, я дал ему последнюю попытку, и похоже, что он работает прямо сейчас. Я ненавижу, когда это случилось ..
Мол, я не изменил ничего в последнее время, что связано с этой функцией почты или что-то: / но это просто работает ..
Так что считайте это исправленным: D Спасибо за вашу помощь всем!
<?php
require 'phpmailer/PHPMailerAutoload.php';
function sendMail($name,$maill,$message)
{
$url=$_SERVER['HTTP_REFERER'];
$mail = new PHPMailer;
$msg = wordwrap($message,70);
$mail->Debugoutput = 'html';
// Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'xxx'; // SMTP username
$mail->Password = 'xxx'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->From = $maill;
$sujet=$name;
$mail->addAddress($maill); // Name is optional
$mail->Subject = $sujet;
//$mail->Body = ;
$message='
</html>
';
$mail->MsgHTML(
$message
);
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
}
$url=$_SERVER['HTTP_REFERER'];
Попробуй это. Это может работать для вас.