邮箱免费申请注册账号,外贸seo网站,潮州企业网站建设,申请商标注册博客升级中#xff0c;把之前没有想到的功能一点点的完善。
这篇日志记录一下#xff0c;使用phpmailer实现邮件发送的这样一个操作。
博客偶尔会有留言和评论#xff0c;我也会及时回复#xff0c;但是有一个问题#xff0c;我回复了#xff0c;给我留言的人如果不再次…博客升级中把之前没有想到的功能一点点的完善。
这篇日志记录一下使用phpmailer实现邮件发送的这样一个操作。
博客偶尔会有留言和评论我也会及时回复但是有一个问题我回复了给我留言的人如果不再次进我的博客查看他是不知道的这个很不合理。
去看了下其他人的博客。多都是通过邮件回复的。
这个挺好搞一个。
百度上基本上介绍了两种方法。
第一种是PHP通过qq邮箱或者网易邮箱的SMTP服务器来实现邮件发送。
第二种是使用phpmailer来实现邮件发送。
注意第二种方法也需要你的邮箱开启SMTP服务。
如何开启邮箱的SMTP服务请参考《QQ邮箱开启SMTP服务》最终效果如下图所示 在开启过程中页面中会提示一个你调用SMTP的授权密码如下图所示此密码一定要记住如果没记住可再次生成我上边开启了两个SMTP服务以最后的授权密码为准。 第一种方法尝试过了报错如下
Trying to smtp.qq.com:587 220 smtp.qq.com Esmtp QQ Mail Server Connected to relay host smtp.qq.com
HELO localhost 250 smtp.qq.com AUTH LOGIN ODA1Nzk1OTU1QHFxLmNvbQ 530 Must issue a STARTTLS command first.
Error: Remote host returned 530 Must issue a STARTTLS command first.
Error: Error occurred while sending HELO command.
Error: Cannot send email to 1150366147qq.com Disconnected from remote host 百度了一下没有找到明确的答案。如果你们有遇到过这样的问题请在下方留言我们可以交流一下。 我这里使用的是第二种方法。
Phpmail具体的优缺点啥的我这里不啰嗦了。想了解的请自行百度。 第一步获取phpmailer
PHPMailer项目地址GitHub - PHPMailer/PHPMailer: The classic email sending library for PHP 使用git命令克隆到本地或直接在该项目页面的右下方点击“ Download ZIP ”即可获取到完整的PHPMailer代码包再到本地解压即可。 第二步开启服务器支持
使用phpmailer我们的服务器需要开启sockets及openssl服务。 第三步将phpmailer上传到我们的服务器中。
我这里使用的是thinkphp5框架我将其上传到了根目录下的extend目录中。
这一步其实没有必要单拿出来说但是我们从github上下载下来的项目文件不全是有用的我们可以只将几个主文件上传到服务器中即可。 第四步编码发送邮件公共方法及其调用方法
发送邮件公共方法
/*发送邮件方法*param $to接收者 $title标题 $content邮件内容*return bool true:发送成功 false:发送失败*/
function sendMail($to,$title,$content){//引入PHPMailer的核心文件 使用require_once包含避免出现PHPMailer类重复定义的警告require_once(phpmailer/class.phpmailer.php);require_once(phpmailer/class.smtp.php);//实例化PHPMailer核心类$mail new PHPMailer();//是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式$mail-SMTPDebug 1;//使用smtp鉴权方式发送邮件$mail-isSMTP();//smtp需要鉴权 这个必须是true$mail-SMTPAuthtrue;//链接qq域名邮箱的服务器地址$mail-Host smtp.qq.com;//设置使用ssl加密方式登录鉴权$mail-SMTPSecure ssl;//设置ssl连接smtp服务器的远程服务器端口号以前的默认是25但是现在新的好像已经不可用了 可选465或587$mail-Port 465;//设置smtp的helo消息头 这个可有可无 内容任意// $mail-Helo Hello smtp.qq.com Server;//设置发件人的主机域 可有可无 默认为localhost 内容任意建议使用你的域名$mail-Hostname https://guanchao.site;//设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码$mail-CharSet UTF-8;//设置发件人姓名昵称 任意内容显示在收件人邮件的发件人邮箱地址前的发件人姓名$mail-FromName LSGO实验室;//smtp登录的账号 这里填入字符串格式的qq号即可$mail-Username 805795955qq.com;//smtp登录的密码 使用生成的授权码就刚才叫你保存的最新的授权码$mail-Password ****************;//设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”$mail-From 805795955qq.com;//邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false$mail-isHTML(true);//设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 这里第二个参数的意义不大$mail-addAddress($to,时间里的博客在线通知);//添加多个收件人 则多次调用方法即可// $mail-addAddress(**********qq.com,时间里的博客在线通知);//添加该邮件的主题$mail-Subject $title;//添加邮件正文 上方将isHTML设置成了true则可以是完整的html字符串 如使用file_get_contents函数读取本地的html文件$mail-Body $content;//为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录相对目录、或绝对目录均可 第二参数为在邮件附件中该附件的名称// $mail-addAttachment(./d.jpg,mm.jpg);//同样该方法可以多次调用 上传多个附件// $mail-addAttachment(./Jlib-1.1.0.js,Jlib.js);$status $mail-send();//简单的判断与提示信息if($status) {return true;}else{return false;}
} 调用方法
我这里只是简单的调用具体需要什么内容请根据自身需求决定。
public function sendEmail()
{$flag sendMail(805795955qq.com,时间里的博客在线通知,欢迎来到时间里的博客);if($flag){echo true;}else{echo false;}
} 以上就是使用phpmailer发送邮件的全部实现过程。 有好的建议请在下方输入你的评论。