阿里雲使用swiftmailer不能發送郵件

報錯:

Connection could not be established with host smtp.163.com [ #0]

不能正常發送的代碼:

<?php
require_once './vendor/autoload.php';
$su = 'register';
$ge = '[email protected]';
$co = 'Please register!';
send_mail($su,$ge,$co);

function send_mail($subject,$getter,$content)
{
    $result = false;
    $sender = '[email protected]';
    $transport = Swift_SmtpTransport::newInstance('smtp.163.com', 465,'ssl')
        ->setUsername($sender)
        ->setPassword('yourEmailPassword');
    $mailer = Swift_Mailer::newInstance($transport);
    $message = Swift_Message::newInstance($subject)
        ->setFrom(array($sender => 'Chinese Project'))
        ->setTo($getter)
        ->setBody($content)
    ;
    $result = $mailer->send($message);
    $success = $result ? 0 : 1;
    return $result;
}

這個主要原因是使用swiftmailer時沒有設置https的選項

發送正常的代碼:

<?php
$su = 'register';
$ge = '[email protected]';
$co = 'Please register!';
send_mail($su,$ge,$co);

function send_mail($subject,$getter,$content)
{
    $https['ssl']['verify_peer'] = FALSE;
    $https['ssl']['verify_peer_name'] = FALSE;
    $result = false;
    $sender = '[email protected]';
    $transport = Swift_SmtpTransport::newInstance('smtp.163.com', 465,'ssl')
        ->setUsername($sender)
        ->setPassword('yourEmailPassword')
        ->setStreamOptions($https);
    $mailer = Swift_Mailer::newInstance($transport);
    $message = Swift_Message::newInstance($subject)
        ->setFrom(array($sender => 'Chinese Project'))
        ->setTo($getter)
        ->setBody($content)
    ;
    $result = $mailer->send($message);
    $success = $result ? 0 : 1;
    return $result;
}

報錯:

 Expected response code 220 but got code “”, with message “””

這個一般是由於encyption配置導致的 錯誤代碼:

<?php
require_once './vendor/autoload.php';
$su = 'register';
$ge = '[email protected]';
$co = 'Please register!';
send_mail($su,$ge,$co);

function send_mail($subject,$getter,$content)
{
    $result = false;
    $sender = '[email protected]';
    $transport = Swift_SmtpTransport::newInstance('smtp.163.com', 465,'tls')
        ->setUsername($sender)
        ->setPassword('yourEmailPassword');
    $mailer = Swift_Mailer::newInstance($transport);
    $message = Swift_Message::newInstance($subject)
        ->setFrom(array($sender => 'Chinese Project'))
        ->setTo($getter)
        ->setBody($content)
    ;
    $result = $mailer->send($message);
    $success = $result ? 0 : 1;
    return $result;
}

報錯:

Connection could not be established with host smtp.163.com [Connection timed out #110]

這個一般是由於阿里雲的25端口限制了,不能使用導致的 錯誤代碼:

<?php
require_once './vendor/autoload.php';
$su = 'register';
$ge = '[email protected]';
$co = 'Please register!';
send_mail($su,$ge,$co);

function send_mail($subject,$getter,$content)
{
    $result = false;
    $sender = '[email protected]';
    $transport = Swift_SmtpTransport::newInstance('smtp.163.com', 25,'tls')
        ->setUsername($sender)
        ->setPassword('yourEmailPassword');
    $mailer = Swift_Mailer::newInstance($transport);
    $message = Swift_Message::newInstance($subject)
        ->setFrom(array($sender => 'Chinese Project'))
        ->setTo($getter)
        ->setBody($content)
    ;
    $result = $mailer->send($message);
    $success = $result ? 0 : 1;
    return $result;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章