PHPMailer не может отправить через постфикс
Я уже настроил постфикс в моем Debian Linux VPS. Я могу отправить письмо через консоль ssh, используя postfix. Я могу отправлять электронную почту, используя PHPMailer, используя мою учетную запись Gmail. Я могу получать электронную почту в моей учетной записи Debian Linux VPS.
Затем я хочу отправить письмо с помощью PHPMailer через Postfix, используя мою учетную запись Debian Linux VPS. Но это не удалось с журналом ниже.
SERVER -> CLIENT: <br>
CLIENT -> SERVER: EHLO android<br>
SERVER -> CLIENT: <br>
SMTP ERROR: EHLO command failed: <br>
SMTP NOTICE: EOF caught while checking if connected<br>
SMTP Error: Could not connect to SMTP host.<br>
Как отправить письмо, используя PHPMailer, используя postfix? я должен использовать sasl?
Мой sendmail.php
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Subject = 'hello postfix phpmailer';
$mail->msgHTML(file_get_contents('contentemail.html'), dirname(__FILE__));
$mail->Host = 'yyyy.zzzz.com';
$mail->Username = "xxxx";
$mail->setFrom('xxxx@yyyy.zzzz.com', 'Ceramah Islam');
$mail->addReplyTo('xxxx@yyyy.zzzz.com', 'Ceramah Islam');
$mail->Password = "aaaaaa";
$mail->addAddress('bbbb@gmail.com', 'bbbb');
$mail->send();
1 ответ
Я думаю, что проблема вызвана сертификатом "snakeoil" и закрытым ключом, которые идут с Postfix. Хитрость не в том, чтобы их проверить. Вот что я нашел, работал:
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = "localhost";
$mail->Port = 25;
$mail->SMTPSecure = "tls";
$mail->SMTPOptions = array
(
'ssl' => array
(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$mail->setFrom('server@example.org', 'My Server');
$mail->addAddress('user@example.com', 'My User');
$mail->Subject = 'Message from PHPMailer and Postfix';
$mail->Body = 'Whatever';
if ($mail->send())
// SMTP message send success
{
// Put success logic here
}
else
// SMTP message send failure
{
// Put failure logic here
}