美文网首页PHP实战PHP笔记
PHPMailer通过QQ服务器发邮件

PHPMailer通过QQ服务器发邮件

作者: 零一间 | 来源:发表于2017-07-07 23:57 被阅读31次

    必要步骤

    PHP所需扩展:

    socket
    openssl
    

    PHPMailer

    地址:https://github.com/PHPMailer/PHPMailer
    

    PHPMailer

    优点:

    • 可运行在任何平台之上
    • 支持SMTP验证
    • 发送邮时指定多个收件人,抄送地址,暗送地址和回复地址;注:添加抄送、暗送仅- win平台下smtp方式支持
    • 支持多种邮件编码包括:8bit,base64,binary和quoted-printable
    • 支持冗余SMTP服务器,即可以指定主smtp服务器地址也只可以指定备份smtp服务器
    • 支持带附件的邮件,可以为邮件添加任意格式的附件—当然得你的服务器有足够大的带宽支撑
    • 自定义邮件头信息,这跟php中通过header函数发送头信息类似
    • 支持将邮件正文制作成HTMl内容,那么就可以在邮件正文中插入图片
    • 灵活的debug支持
    • 经测试兼容的SMTP服务器包括:Sendmail,qmail,Postfix,Imail,Exchange等

    测试代码

    <?php
    /**
     * Created by PhpStorm.
     * Desc: PHPMailer发送邮件
     * Time: 2017/7/7 22:58
     */
    
    require_once('./vendor/autoload.php'); 
    $mail = new PHPMailer();
    
    //是否启用smtp的debug进行调试, 默认关闭
    //$mail->SMTPDebug = 1;
    //使用smtp鉴权方式发送邮件
    $mail->isSMTP();
    //smtp需要鉴权 这个必须是true
    $mail->SMTPAuth=true;
    //qq邮箱的服务器地址
    $mail->Host = 'smtp.qq.com';
    //设置使用ssl加密方式登录鉴权
    $mail->SMTPSecure = 'ssl';
    //设置ssl连接smtp服务器的远程服务器端口号
    $mail->Port = 465;
    //设置smtp消息头 可选
    //$mail->Helo = 'smtp.qq.com Server';
    ////设置发件人主机域 默认为localhost ,建议使用你的域名
    $mail->Hostname = 'localhost';
    //设置发送的邮件的编码 可选
    $mail->CharSet = 'UTF-8';
    //设置发件人
    $mail->FromName = '孙悟空';
    //smtp登录的账号 ,这里填入qq号即可
    $mail->Username ='填入登录的账号';
    //smtp登录的密码(我用的是授权码)
    $mail->Password = '填入登录的密码';
    //设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”
    $mail->From = '发件人邮箱';
    //是否为html编码
    $mail->isHTML(true);
    //设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 
    $mail->addAddress('收件人邮箱地址');
    //添加多个收件人 则多次调用方法即可
    //$mail->addAddress('收件人邮箱地址2');
    //添加邮件的主题
    $mail->Subject = '发送邮件测试';
    //添加邮件正文  isHTML设置成了true,则可以是完整的html字符串 
    $mail->Body = "这是一个<b style=\"color:red;\">PHPMailer</b>发送邮件的一个测试用例";
    //为该邮件添加附件 第一个参数为附件存放目录 第二参数为附件的名称
    $mail->addAttachment('./logo.jpg','log');
    //上传多个附件
    $mail->addAttachment('./README.md','README');
    //发送命令 返回布尔值
    $status = $mail->send();
    if($status) {
        echo '发送邮件成功';
    }else{
        echo '发送邮件失败,错误信息未:'.$mail->ErrorInfo;
    }
    

    发送结果

    Paste_Image.png

    相关文章

      网友评论

        本文标题:PHPMailer通过QQ服务器发邮件

        本文链接:https://www.haomeiwen.com/subject/ihcdhxtx.html