必要步骤
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;
}
发送结果