九月丶

PHP中利用PHPMailer配合阿里云邮箱实现发送邮件
/** * to 发送邮箱地址 * title 邮箱主题 * content 邮件正文 * file_ur...
扫描右侧二维码阅读全文
04
2018/01

PHP中利用PHPMailer配合阿里云邮箱实现发送邮件

/**
 * to 发送邮箱地址
 * title 邮箱主题
 * content 邮件正文
 * file_url 邮箱附件
 * 邮件发送函数
 */
    function sendMail($to, $title, $content, $file_url = '') {
        //判断发送内容是否为空,如果为空使用默认的配置模板
        if (empty($content)) $content = C('MAIL_CONTENT');
        
        vendor('PHPMailer.class#phpmailer'); //引入PHPMailer类 
        
        $mail = new phpmailer(); //实例化
        
        @$mail->IsSMTP(); // 启用SMTP
        
        $mail->Host = "smtp.aliyun.com"; //连接smtp服务器的服务器地址
        
        $mail->SMTPAuth = true; //启用smtp认证
        
        $mail->Username = "destiny1123@aliyun.com"; //你的邮箱名
        
        $mail->Password = "填写SMTP邮箱登录密码"; //登录密码
        
        $mail->From =  "destiny1123@aliyun.com"; //发件人地址(也就是你的邮箱地址)
        
        
        $mail->FromName = "发件人姓名"; //设置发件人姓名任意内容,显示在收件人邮件的发件人邮箱地址前的发件人姓名
        
        $mail->AddAddress($to, "喵喵保:");//设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 这里第二个参数的意义不大
       
        // $mail->AddAddress('xxx@163.com', '喵喵保:'); //添加多个收件人 则多次调用方法即可
        
        $mail->Port = 465; //设置ssl连接smtp服务器的远程服务端口号,以前的默认是25,阿里云的服务器关闭了25端口号
        
        $mail->Mailer = "smtp"; 
        
        $mail->SMTPSecure = "ssl"; //设置使用ssl加密方式登录鉴权
        
        $mail->SMTPDebug = 1;  //是否开启Debug,开发环境开启Debug模式,生产环境建议注释掉即可,默认关闭Debug模式0
       
        $mail->WordWrap = 50; //设置每行字符长度
       
        $mail->IsHTML(true); // 是否HTML格式邮件
       
        $mail->CharSet = "utf-8"; //设置邮件编码
        
        $mail->Subject = $title; //邮件主题
        
        $mail->Body = $content; //添加邮件正文 上方将isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取本地的html文件
        
        if (!empty($file_url)) {
            $mail->AddAttachment($file_url); // 添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可) 第二参数为在邮件附件中该附件的名称,如果需要上传多个附件可多次调用该方法
        }
        // $mail->AltBody = "恭喜你在福建公众投保网络服务有限公司-喵喵保 官网成功购买保险,请下载附件查看保单详情!喵喵保感谢您的支持。"; //邮件正文不支持HTML的备用显示
        
        if ($mail->Send()) {
            return true;
         } else {
           return false;
        }
    }

附件中的PHPMailer需要放到Vendor目录下面
PHPMailer.rar

调用方式

if (sendMail('917088650@qq.com', './baodan_url.pdf', '福建公众投保网络服务有限公司-喵喵保')) {
    //发送成功
}else{
    //发送失败
}

以下几点需要注意:

  • 在邮箱设置里面需要开启SMTP服务。
  • PHPMailer需要PHP的socket扩展支持,建议查看是否安装。
  • PHPMailer连接阿里云邮箱服务器采用的是ssl加密方式。所以php还得openssl的支持,如果没有安装该扩展也要安装。
  • 服务器需要开启465端口号
最后修改:2019 年 05 月 11 日 07 : 11 PM
如果觉得我的文章对你有用,请随意赞赏

4 条评论

  1. 大白

    123123

  2. 老黑

    ୧(๑•̀⌄•́๑)૭

    1. 九月丶
      @老黑

      ヾ(≧∇≦*)ゝ

      1. 老黑
        @九月丶

        (。•ˇ‸ˇ•。)

发表评论 取消回复