您现在的位置是:网站首页>>PHP>>php
PHP实现SMTP邮件发送
发布时间:2018-11-23 13:55:17作者:wangjian浏览量:756点赞量:0
使用PHPMAILER实现PHP发邮件功能
一:下载phpMAILER源码
下载下来之后将PHPMAILER源码放到你的项目里,这里我把PHPMAILER源码放到了我的php文件同级
二:配置php.ini
使用 phpinfo() 函数查看 sockets 和 openssl 扩展信息是否开启
1:sockets如果没有开启请打开php.ini文件进行开启
首先检查php.ini中;extension=php_sockets.dll是否存在, 如果存在的话去掉前面的注释符‘;’, 如果不存在这行,那么添加extension=php_sockets.dll。
2:openssl 如果没有开启请打开php.ini文件进行开启
首先检查php.ini中;extension=php_openssl.dll是否存在, 如果存在的话去掉前面的注释符‘;’, 如果不存在这行,那么添加extension=php_openssl.dll。
三:实现邮件发送/**
* @param $address mixed 收件人 多个收件人时为数组 array($address1,$address1)
* @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/src/Exception.php';
require './PHPMailer-master/src//PHPMailer.php';
require './PHPMailer-master/src//SMTP.php';
//date_default_timezone_set("Asia/Shanghai");//设定时区东八区
$mail = new PHPMailer\PHPMailer\PHPMailer();
// 是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
$mail->SMTPDebug = 1;
// 使用smtp鉴权方式发送邮件
$mail->isSMTP();
// smtp需要鉴权 这个必须是true
$mail->SMTPAuth = true;
// 链接qq域名邮箱的服务器地址
$mail->Host = 'smtp.qq.com';
// 设置ssl连接smtp服务器的远程服务器端口号是否开启
if ($mail->Port === 465) {
// 设置使用ssl加密方式登录鉴权
$mail->SMTPSecure = 'ssl';
}
// 设置发送的邮件的编码
$mail->CharSet = 'UTF-8';
// 设置发件人昵称 显示在收件人邮件的发件人邮箱地址前的发件人姓名
$mail->FromName = 'ceshi';
// smtp登录的账号 QQ邮箱即可
$mail->Username = '243681093@qq.com';
// smtp登录的密码 使用生成的授权码
$mail->Password = 'tkccftyagtkobghh';
// 设置发件人邮箱地址 同登录账号
$mail->From = '243681093@qq.com';
// 邮件正文是否为html编码 注意此处是一个方法
$mail->isHTML(true);
// 设置收件人邮箱地址
if (is_array($address)) {
foreach ($address as $key => $value) {
$mail->addAddress(value);
}
} else {
$mail->addAddress($address);
}
// 添加该邮件的主题
$mail->Subject = $subject;
// 添加邮件正文
$mail->Body = $body;
if ($file) {
// 为该邮件添加附件
$mail->addAttachment($file);
}
// 发送邮件 返回状态
$status = $mail->send();
}
调用上述方法即可实现邮件发送
0
+1