阿里云使用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;
}

猜你喜欢

转载自blog.csdn.net/wuyoulv/article/details/79578552
今日推荐