2016-10-07 8 views
-1

Я уже установил постфикс в моем debian linux VPS. Я могу отправить электронную почту через консоль ssh с помощью постфикса. Я могу отправить электронное письмо с помощью PHPMailer, используя мою учетную запись gmail. Я могу получить электронную почту в моей учетной записи VPS debian linux.PHPMailer не может отправлять через постфикс

Затем я хочу отправить электронное письмо с помощью PHPMailer через Postfix, используя мою учетную запись debian linux vps. Но это не удалось с журналом ниже.

SERVER -&gt; CLIENT: <br> 
CLIENT -&gt; SERVER: EHLO android<br> 
SERVER -&gt; 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 с помощью постфикса? я должен использовать 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('[email protected]', 'Ceramah Islam'); 
$mail->addReplyTo('[email protected]', 'Ceramah Islam'); 
$mail->Password = "aaaaaa"; 
$mail->addAddress('[email protected]', 'bbbb'); 
$mail->send(); 
+0

Можете ли вы опубликовать полный вывод с SMTPDebug = 4 и убедиться, что используете последний PHPMailer. – Synchro

ответ

2

Я думаю, что проблема вызвана «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('[email protected]', 'My Server'); 
$mail->addAddress('[email protected]', '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 
}