PHP使用PHPmailer类和smtp发送邮件
2024-10-20 17:28:15
- 开启邮件smtp服务
- 设置授权码
- 引入phpmailer类,smtp类
本地下载
https://github.com/PHPMailer/PHPMailer//下载PHPMailer并开启php_openssl、php_socket扩展
include_once 'PHPMailer.php';
include_once 'SMTP.php';
$mail = new PHPMailer(); //实例化
$mail->IsSMTP(); // 启用SMTP
$mail->Host = "smtp.yeah.net"; //SMTP服务器 以163邮箱为例子
$mail->Port = 25; //邮件发送端口
$mail->SMTPAuth = true; //启用SMTP认证 $mail->CharSet = "UTF-8"; //字符集
$mail->Encoding = "base64"; //编码方式 $mail->Username = "phpmaster@yeah.net"; //你的邮箱
$mail->Password = "EFWWFULFELKCUMQY"; //网易邮箱客户端授权码 $mail->From = "phpmaster@yeah.net"; //发件人地址(也就是你的邮箱)
$mail->FromName = "张某某"; //发件人姓名 $address = "137647337@qq.com";//收件人email
$mail->AddAddress($address, "亲");//添加收件人(地址,昵称)
//附件
/*$mail->AddAttachment("logo.jpg");
$mail->AddAttachment("1.zip");
$mail->AddAttachment('1.xls','我的附件.xls'); // 添加附件,并指定名称*/
$mail->IsHTML(true); //支持html格式内容
//$mail->AddEmbeddedImage("logo.jpg", "my-attach", "logo.jpg"); //设置邮件中的图片
$mail->Subject = "你好"; //邮件标题
$mail->Body = '这是HTML邮件正文粗体,<a href="http://www.zhangxuhui.com">激活</a>'; //邮件主体内容 //发送
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "success";场景:邮箱发送验证码类在php7.3+环境中报错:
filter_var(): explicit use of FILTER_FLAG_SCHEME_REQUIRED and FILTER_FLAG_HOST_REQUIRED is deprecated
原因:查资料得知,php7.3+弃用了FILTER_FLAG_SCHEME_REQUIRED函数解决方式:
PHPMailer.php 3599行 if (filter_var('http://' . $host, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED)) {
//Is it a syntactically valid hostname?
return true;
}
更改为: if (preg_match('/http:\/\/[\w.]+[\w\/]*[\w.]*\??[\w=&\+\%]*/is','http://' . $host)) {
//Is it a syntactically valid hostname?
return true;
}其实就是url地址地址的正则验证。
最新文章
- 关于chart.js 设置canvas的宽度为父级元素的宽度的百分百 以及 X轴上面刻度数据太多如何处理
- [ftp]Centos 创建 sftp 步骤
- 深入Java虚拟机
- Eclipse CDT Linux下内存分析 补记
- python~实现tab补全
- 技术文集:万能WINDOWS XP封装
- 《C++Primer》复习——with C++11 [3]
- JavaScript constructor 属性
- 表达式计算器(LL1文法)
- <;>;跟!=
- 菜鸟的jQuery源码学习笔记(三)
- CSS3弹性伸缩布局(下)——flex布局
- Unix系统的文件打开机构
- [Deep Learning] 深度学习中消失的梯度
- Vue-admin工作整理(十七):Mock模拟Ajax请求
- Python Revisited Day 03 (组合数据类型)
- [转帖] bat方式遍历目录内的文件
- 《剑指offer》-二叉搜索树与双向链表
- C++模板的实现(模板函数和模板类,附带模板实现顺序表和链表代码)
- VB.NET章鱼哥出品—怎样解决MDI子窗口被父窗口中的控件覆盖的问题
热门文章
- iOS 苹果集成登录及苹果图标的制作要求
- ubuntu 16.04 搭建docker
- KingbaseES时间函数的比较
- KingbaseES 普通表在线改为分区表案例
- KingbaseES V8R6 账号异常登录锁定案例
- 现有rabbitmq集群添加新节点,移除旧节点(可以作为rabbitmq集群迁移使用)
- Elasticsearch中text与keyword的区别
- 改变一个数组内元素的位置,不通过splice方法。
- 十分钟速成DevOps实践
- [题解] Atcoder ABC 225 H Social Distance 2 生成函数,分治FFT