PHPMailer - 实现自动发邮件

一般注册一个新的账号,都会收到一封官方的邮件,那么如何为自己的项目建立自动发送邮件的系统呢?
  • 拥有自己的邮箱账号;
  • 开启客户端授权码;
  • PHPMailer 的下载;
  • 邮件信息乱码问题的解决;
一、拥有自己的邮箱账号。(本文以163邮箱为例)
二、开启客户端授权码,只有开启之后才能通过PHP代码,控制邮件的自动发送。

在PHP中,需要使用的密码就是,开启邮箱客户端授权后设置的密码。

三、PHPMailer的下载

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

github上有相关的使用说明

邮件发送代码如下:

<?php
require_once('class.phpmailer.php');

$mail = new PHPMailer(); //实例化
$mail->IsSMTP(); // 启用SMTP
$mail->Host = "smtp.163.com"; //SMTP服务器 以163邮箱为例子
$mail->Port = 25;  //邮件发送端口
$mail->SMTPAuth = true;  //启用SMTP认证

$mail->CharSet  = "UTF-8"; //字符集
$mail->Encoding = "base64"; //编码方式

$mail->Username = "xxx@163.com";  //你的邮箱
$mail->Password = "xxx";  //你的授权码

$mail->Subject = "你好"; //邮件标题

$mail->From = "xxx@163.com";  //发件人地址(也就是你的邮箱)
$mail->FromName = "xxxx";  //发件人姓名

$address = "xxx@163.com";//收件人email
$mail->AddAddress($address, "xxx");//添加收件人(地址,昵称)

$mail->AddAttachment('xxx.xls','xxx.xls'); // 添加附件,并指定名称
$mail->IsHTML(true); //支持html格式内容
$mail->AddEmbeddedImage("xxx.jpg", "my-attach", "xxx.jpg"); //设置邮件中的图片
$mail->Body = 'xxx '; //邮件主体内容

//发送
if(!$mail->Send()) {
  echo "发送失败: " . $mail->ErrorInfo;
} else {
  echo "发送成功!";
}
?>
四、邮件信息乱码问题的解决:
a.解决非标题汉字乱码
    在PHPMailer 库文件class.phpmailer.php中,
    找到   public $CharSet = 'iso-8859-1';
    改成   public $CharSet = 'UTF-8';
    并且  把文件保存为UTF-8格式。
b.解决标题汉字乱码
    $mail->Subject ="=?utf-8?B?" . base64_encode(" 你的标题内容 ") . "?=";

本文 demo 地址:https://github.com/YuJieHou/PHPMailer-demo

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容