PHP怎么用phpmailer实现邮件发送功能(php,phpmailer,编程语言)

时间:2024-04-29 04:59:26 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

PHP怎么用phpmailer实现邮件发送功能

百度上基本上介绍了两种方法。

第一种是PHP通过qq邮箱或者网易邮箱的SMTP服务器来实现邮件发送。

第二种是使用phpmailer来实现邮件发送。

注意,第二种方法也需要你的邮箱开启SMTP服务。

如何开启邮箱的SMTP服务的最终效果如下图所示:

PHP怎么用phpmailer实现邮件发送功能

在开启过程中,页面中会提示一个你调用SMTP的授权密码,如下图所示,此密码一定要记住,如果没记住,可再次生成,我上边开启了两个SMTP服务,以最后的授权密码为准。

PHP怎么用phpmailer实现邮件发送功能

第一种方法尝试过了,报错如下:

Tryingtosmtp.qq.com:587220smtp.qq.comEsmtpQQMailServerConnectedtorelayhostsmtp.qq.com>HELOlocalhost250smtp.qq.com>AUTHLOGINODA1Nzk1OTU1QHFxLmNvbQ==530MustissueaSTARTTLScommandfirst.Error:Remotehostreturned"530MustissueaSTARTTLScommandfirst."Error:ErroroccurredwhilesendingHELOcommand.Error:Cannotsendemailto<1150366147@qq.com>Disconnectedfromremotehost

百度了一下,没有找到明确的答案。如果你们有遇到过这样的问题,请在下方留言,我们可以交流一下。

我这里使用的是第二种方法。

Phpmail具体的优缺点啥的我这里不啰嗦了。想了解的请自行百度。

第一步获取phpmailer

PHPMailer项目地址:https://github.com/PHPMailer/PHPMailer;使用git命令克隆到本地,或直接在该项目页面的右下方点击“ Download ZIP ”即可获取到完整的PHPMailer代码包,再到本地解压即可。

第二步开启服务器支持

使用phpmailer,我们的服务器需要开启sockets及openssl服务。

PHP怎么用phpmailer实现邮件发送功能

第三步将phpmailer上传到我们的服务器中。

我这里使用的是thinkphp5框架,我将其上传到了根目录下的extend目录中。

这一步其实没有必要单拿出来说,但是,我们从github上下载下来的项目文件,不全是有用的,我们可以只将几个主文件上传到服务器中即可。

第四步编码发送邮件公共方法及其调用方法

发送邮件公共方法:

/*发送邮件方法*@param$to:接收者$title:标题$content:邮件内容*@returnbooltrue:发送成功false:发送失败*/functionsendMail($to,$title,$content){//引入PHPMailer的核心文件使用require_once包含避免出现PHPMailer类重复定义的警告require_once("phpmailer/class.phpmailer.php");require_once("phpmailer/class.smtp.php");//实例化PHPMailer核心类$mail=newPHPMailer();//是否启用smtp的debug进行调试开发环境建议开启生产环境注释掉即可默认关闭debug调试模式$mail->SMTPDebug=1;//使用smtp鉴权方式发送邮件$mail->isSMTP();//smtp需要鉴权这个必须是true$mail->SMTPAuth=true;//链接qq域名邮箱的服务器地址$mail->Host='smtp.qq.com';//设置使用ssl加密方式登录鉴权$mail->SMTPSecure='ssl';//设置ssl连接smtp服务器的远程服务器端口号,以前的默认是25,但是现在新的好像已经不可用了可选465或587$mail->Port=465;//设置smtp的helo消息头这个可有可无内容任意//$mail->Helo='Hellosmtp.qq.comServer';//设置发件人的主机域可有可无默认为localhost内容任意,建议使用你的域名$mail->Hostname='https://guanchao.site';//设置发送的邮件的编码可选GB2312我喜欢utf-8据说utf8在某些客户端收信下会乱码$mail->CharSet='UTF-8';//设置发件人姓名(昵称)任意内容,显示在收件人邮件的发件人邮箱地址前的发件人姓名$mail->FromName='LSGO实验室';//smtp登录的账号这里填入字符串格式的qq号即可$mail->Username='805795955@qq.com';//smtp登录的密码使用生成的授权码(就刚才叫你保存的最新的授权码)$mail->Password='****************';//设置发件人邮箱地址这里填入上述提到的“发件人邮箱”$mail->From='805795955@qq.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){returntrue;}else{returnfalse;}}

调用方法:

我这里只是简单的调用,具体需要什么内容,请根据自身需求决定。

publicfunctionsendEmail(){$flag=sendMail('805795955@qq.com','时间里的博客在线通知','欢迎来到时间里的博客');if($flag){echotrue;}else{echofalse;}}
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:PHP怎么用phpmailer实现邮件发送功能的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:jquery如何清除元素max-width下一篇:

24 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18