PHP实现SMTP邮件的发送实例
时间:2022-07-27
本文章向大家介绍PHP实现SMTP邮件的发送实例,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
当你还在纠结php内置的mail()函数不能发送邮件时,那么你现在很幸运,此时的这篇文章可以帮助到你!
php利用smtp类来发邮件真是屡试不爽,我用过很久了,基本上没出过问题。本博客后台,当博主回复留言时候,会自动给网友发一封有新回复提示的邮件也是用的本文这个方法实现的。
smtp类发送邮件的方法其实很简单,也很稳定,类是别人已经写好的了,你只需要调用就行了。几行简单的配置就能发邮件,是不是很期待的试一试呢!
<?php
/**
* @param $address mixed 收件人 多个收件人/或需要设置收件人昵称时为数组 array($address1,$address1)/array(array('address'= $address1,'nickname'= $nickname1),array('address'= $address2,'nickname'= $nickname2))
* @param $subject string 邮件主题
* @param $body string 邮件内容
* @param $file string 附件
* @return bool|string 发送成功返回true 反之返回报错信息
* @throws Exception
*/
function send_mail_by_smtp($address, $subject, $body, $file = '')
{
require('./PHPMailer-master/Exception.php');
require('./PHPMailer-master/PHPMailer.php');
require('./PHPMailer-master/SMTP.php');
//date_default_timezone_set("Asia/Shanghai");//设定时区东八区
$mail = new PHPMailer();
//Server settings
$mail- SMTPDebug = 2;
$mail- isSMTP(); // 使用SMTP方式发送
$mail- Host = 'smtp.126.com'; // SMTP邮箱域名
$mail- SMTPAuth = true; // 启用SMTP验证功能
$mail- Username = "*****@126.com"; // 邮箱用户名(完整email地址)
$mail- Password = "*****"; // smtp授权码,非邮箱登录密码
$mail- Port = 25;
$mail- CharSet = "utf-8"; //设置字符集编码 "GB2312"
// 设置发件人信息,显示为 你看我那里像好人(xxxx@126.com)
$mail- setFrom($mail- Username, '你看我那里像好人');
//设置收件人 参数1为收件人邮箱 参数2为该收件人设置的昵称 添加多个收件人 多次调用即可
//$mail- addAddress('********@163.com', '你看我那里像好人');
if (is_array($address)) {
foreach ($address as $item) {
if (is_array($item)) {
$mail- addAddress($item['address'], $item['nickname']);
} else {
$mail- addAddress($item);
}
}
} else {
$mail- addAddress($address, 'adsf');
}
//设置回复人 参数1为回复人邮箱 参数2为该回复人设置的昵称
//$mail- addReplyTo('*****@126.com', 'Information');
if ($file !== '') $mail- AddAttachment($file); // 添加附件
$mail- isHTML(true); //邮件正文是否为html编码 true或false
$mail- Subject = $subject; //邮件主题
$mail- Body = $body; //邮件正文 若isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取的html文件
//$mail- AltBody = 'This is the body in plain text for non-HTML mail clients'; //附加信息,可以省略
return $mail- Send() ? true : 'ErrorInfo:' . $mail- ErrorInfo;
}
$path = '.wpic907.jpg';
$ret = send_mail_by_smtp('*******@163.com', 'PHPMailer邮件标题', 'PHPMailer邮件内容', $path);
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Window open使用教程
- kafka发送客户端在高并发场景下如何保证不频繁GC的
- 几个小细节帮你提升java代码运行效率
- spring data操作ES简直不能再香
- 国防科大提出基于可变形三维卷积(D3Dnet)的视频超分辨,代码已开源
- 不要被kafka的异步模式欺骗了
- 给你总结几个ES下最容易踩的坑
- ES系列之利用filter让你的查询效率飞起来
- ES主分片和副本数据大小不一样的情况
- 关于kibana的可视化可能都在这篇文章里了
- ES分页看这篇就够了
- ES系列之原来查看文档数量有这么多姿势
- ES系列之嵌套文档和父子文档
- ES系列之一文带你避开日期类型存在的坑
- ES系列之原来ES的聚合统计不准确啊