swiftmailer 发送邮件

作者: xahy 分类: 笔记 发布时间: 2019-07-21 11:41

swiftmailer 是一个PHP邮件发送类。它不依赖于 PHP 自带的mail() 函数,因为该函数在发送多个邮件时占用的系统资源很高。swiftmailer 直接与 SMTP 服务器通讯,具有非常高的发送速度和效率。

参考官网 demo 写出的建议邮件发送代码:

<?php
///
header('Content-type:text/html;charset=utf-8');

///check 是否支持 ssl
if(!(in_array('tls',stream_get_transports()) || in_array('ssl',stream_get_transports()))){
    die('不支持ssl');
}

///check 是否开启 proc_*
if(!function_exists('proc_open')){
    die('请先开启 proc_* 函数支持');
}

///发送相关配置
$config = array(
    'username'=>'102182447@qq.com',///发件人邮箱
    'password'=>'pqoofpiegolibhac',//发件人邮箱密码
    'from_address'=>'102182447@qq.com',///发件人邮箱
    'from_username'=>'xahy',///发件人昵称
    'protocol'=>'',///是否使用ssl端口发送
);

$email_to_address = '2179464110@qq.com';///收件人邮箱
$email_to_username = 'yang';///收件人昵称
$email_title = 'Wonderful Subject';///标题
$email_body = 'Here is the message itself';///内容


require_once './vendor/autoload.php';


try{
    ignore_user_abort(true);
    set_time_limit(0);

    // Create the Transport
    if(isset($config['protocol']) && $config['protocol']=='ssl'){
        $transport = new Swift_SmtpTransport('smtp.qq.com',25);
    }else{
        $transport = (new Swift_SmtpTransport('smtp.qq.com',465,'ssl'));
    };
    $transport->setUsername($config['username'])
        ->setPassword($config['password']);


    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);

    // Create a message
    $message = (new Swift_Message($email_title))
        ->setFrom($config['from_address'],$config['from_username'])
        ->setTo($email_to_address,$email_to_username)
        ->setBody($email_body);

    // Send the message
    $result = $mailer->send($message);

    var_dump($result);
}catch(\Exception $e){
    var_dump($e->getMessage());
}

特别说明:

  • 发件人邮箱密码是在借助的第三方邮件发送商申请的授权码
  • 增加是否使用ssl端口发送的判断是因为某些云服务器提供商出于安全考虑会关闭25端口,这时候就需要使用支持 ssl 协议的端口来发送。

 

参考资料:

swiftmailer官网:https://swiftmailer.symfony.com/docs/introduction.html

smtp支持端口:https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=167&&id=28

阿里云服务器发送邮件:https://www.xianhenyuan.com/archives/276

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注