一:开启Socket扩展
打开php.ini文件
搜索extension=php_sockets.dll,将前面的分号去掉,便开启了Socket扩展
现在测试是否开启成功,新建php文件,输入代码:
<?php
phpinfo();
打开后找到Sockets Support,此时应该为enabled
二:开启openssl 扩展
打开php.ini开启搜索extension=php_openssl.dll,去掉前面的分号
检查是否开启成功(注意重启服务器):
三:获得邮箱授权码
以QQ邮箱为例:
进入账户:
下拉开启开启IMAP/SMTP服务,发送短信后获得授权码。
## 四:下载PHPMailer-master
点击下载PHPMailer-master。本链接由php中文网提供。
将其放在根目录,创建PHPMailer.php文件,开始写代码发邮件:
<?php
// 引入PHPMailer-master文件
require 'PHPMailer-master/PHPMailerAutoload.php';
// PHPMailer提供了PHPMailer类,此处先实例化PHPMailer核心类
$mail = new PHPMailer();
// 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
$mail->SMTPDebug = 1;
/*
* 设置phpmailer发邮件的方式
* 1. win下可以用mail()函数发
* 2. linux下可以用sendmail,qmail来发
* 3. 可以利用smtp协议登录到某个账户上再发
*/
// 此处使用smtp鉴权方式发送邮件
$mail->isSMTP();
// smtp需要鉴权 这个必须是true
$mail->SMTPAuth = true;
// 链接qq域名邮箱的服务器地址
$mail->Host = 'smtp.qq.com';
// 设置使用ssl加密方式登录鉴权
$mail->SMTPSecure = 'ssl';
// 设置ssl连接smtp服务器的远程服务器端口号
$mail->Port = 465;
// 设置发送的邮件的编码
$mail->CharSet = 'UTF-8';
// 设置邮件名称
$mail->FromName = 'eyes++';
// smtp登录的账号 QQ邮箱即可
$mail->Username = '792734338@qq.com';
// smtp登录的密码 使用生成的授权码(开启IMAP/SMTP服务获得)
$mail->Password = 'XXXXXXXXXXXXXXXX';
// 设置发件人邮箱地址 同登录账号
$mail->From = '792734338@qq.com';
// 邮件正文是否为html编码 注意此处是一个方法
$mail->isHTML(true);
// 设置收件人邮箱地址
$mail->addAddress('792734338@qq.com',QQ号);
// 添加多个收件人 则多次调用方法即可
$mail->addAddress('eyes7927@163.com',网易号);
// 设置抄送人
$mail->AddCC('chaosong@163.com','勤恳的抄送人');
// 添加该邮件的主题
$mail->Subject = 'test';
// 添加邮件正文
$mail->Body = '<h1>h1大小</h1><p>p标签大小</p>';
// 为该邮件添加附件
//$mail->addAttachment('./example.pdf');
// 发送邮件 返回状态
echo $mail->send() ? 'ok':'fail';
效果展示:
另外从效果上看,我发现QQ邮箱似乎不支持设置收件人姓名:
大家有兴趣的话还可以看看我的另外两篇博客:
更多相关内容大家可以前往我的个人博客浏览:eyes++的个人空间