现在的位置: 首页 -> PHP学习 -> PHP源码 -> php利用smtp类轻松的发送电子邮件

php利用smtp类轻松的发送电子邮件

2013-07-31 00:09评论数 228 ⁄ 被浏览 250466 views+

当你还在纠结php内置的mail()函数不能发送邮件时,那么你现在很幸运,此时的这篇文章可以帮助到你!


php利用smtp类来发邮件真是屡试不爽,我用过很久了,基本上没出过问题。本博客后台,当博主回复留言时候,会自动给网友发一封有新回复提示的邮件也是用的本文这个方法实现的。


smtp类发送邮件的方法其实很简单,也很稳定,类是别人已经写好的了,你只需要调用就行了。几行简单的配置就能发邮件,是不是很期待的试一试呢!


以下就是核心代码:


<?php

require_once "Smtp.class.php";

//******************** 配置信息 ********************************

$smtpserver = "smtp.126.com";//SMTP服务器

$smtpserverport =25;//SMTP服务器端口

$smtpusermail = "new2008oh@126.com";//SMTP服务器的用户邮箱

$smtpemailto = $_POST['toemail'];//发送给谁

$smtpuser = "new2008oh";//SMTP服务器的用户帐号(或填写new2008oh@126.com,这项有些邮箱需要完整的)

$smtppass = "您的邮箱密码";//SMTP服务器的用户密码

$mailtitle = $_POST['title'];//邮件主题

$mailcontent = "<h1>".$_POST['content']."</h1>";//邮件内容

$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件

//************************ 配置信息 ****************************

$smtp = new Smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.

$smtp->debug = false;//是否显示发送的调试信息

$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);


echo "<div style='width:300px; margin:36px auto;'>";

if($state==""){

echo "对不起,邮件发送失败!请检查邮箱填写是否有误。";

echo "<a href='index.html'>点此返回</a>";

exit();

}

echo "恭喜!邮件发送成功!!";

echo "<a href='index.html'>点此返回</a>";

echo "</div>";

?>


完整范例下载:phpmail技术.zip


效果截图欣赏:


填写收件人,标题和内容后提交


返回成功的提示

瞬间便接收到了邮件


本博客所有案例都经过本人亲自测试,方法也绝对简单易懂,希望大家多多支持,有问题可以与我交流!

请记住我,php学习博客

 

文章出自:https://www.daixiaorui.com/read/16.html 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。

目前有 227 条评论  @我要评论

  1. 227楼我我 我 : 2018-04-12 17:32:46 评论说: @回复

    Trying to smtp.163.com:25 220 163.com Anti-spam GT for Coremail System (163com[20141201]) Connected to relay host smtp.163.com >

  2. 226楼Q772875181 : 2018-04-04 20:30:47 评论说: @回复

    腾讯2016年后出了一堆授权码登陆。这个想用授权码发信?换个账号密码就行了?不行。这次QQ邮箱取消了对未加密的支持!需要强制SSL加密想了半天方案最终把地址改成ssl://smtp.qq.com 成功发信!

  3. 225楼特战队 : 2018-03-07 14:00:55 评论说: @回复

    怎么填加附件

  4. 224楼可爱的小阿天 : 2018-03-04 23:07:12 评论说: @回复

    本地测试失败。总是显示Trying to smtp.qq.com:465 Error: Remote host returned "" Error: Cannot connenct to relay host smtp.qq.com Error: (0) Error:求解。

  5. 223楼cjx : 2018-03-02 11:06:25 评论说: @回复

    看看

  6. 222楼小白 : 2018-02-11 17:55:10 评论说: @回复

    发送成功但是被QQ邮箱放到垃圾邮箱去了是什么原因??

    回复留言标识 kk 回复 小白: 你的项目上线了吗?是在线上发的不

    2018-02-28 22:45:09  @回复

  7. 221楼如何解决? : 2018-02-02 14:58:33 评论说: @回复

    Trying to smtp.qq.com:465

  8. 220楼6666 : 2018-01-30 01:02:21 评论说: @回复

    666

  9. 219楼泉溪水 : 2018-01-28 23:03:32 评论说: @回复

    "550 Invalid User:... Disconnected from remote host 可以看到登陆smtp服务器和身份验证是通过了的,只是最后一步发送不成功。google搜索的时候,说是可能收件人邮件地址不正确。但我输入的邮件地址是我自己的邮箱地址,不应该不正确啊。请问我这个是怎么回事呢?

  10. 218楼梁伟 : 2018-01-26 15:45:31 评论说: @回复

    测试发邮件

  11. 217楼thanks : 2018-01-24 11:34:29 评论说: @回复

    thanks!

  12. 216楼1 : 2018-01-22 21:33:41 评论说: @回复

    时间怎么转成中国时间啊

  13. 215楼FXL : 2018-01-16 13:16:11 评论说: @回复

    再增加一个发件人名称吧

  14. 214楼FXL : 2018-01-16 12:47:02 评论说: @回复

    怎么才能可以给多个邮箱账号发信呢? 目前支持吗?

  15. 213楼222 : 2018-01-12 16:49:54 评论说: @回复

    怎么忽然发不了了

  16. 212楼心随我动 : 2018-01-08 18:06:25 评论说: @回复

    为什么我的只可以发自己的163邮箱,别人的都发送失败,发QQ邮箱也发送失败

    回复留言标识 nuker 回复 心随我动: 我也想知道这个问题

    2018-04-08 16:03:59  @回复

  17. 211楼5465465 : 2018-01-07 13:12:57 评论说: @回复

    1234

  18. 210楼百姓 : 2017-12-23 00:11:06 评论说: @回复

    发送成功,接收成功,标题正常,内容乱码。 发件箱用的 163 的,收件箱用的 qq 的。

    回复留言标识 台小绪 回复 百姓: 这个你可以在原先的mail.class.php里面有一个$header的Content-Type:text/html后面改成Content-Type:text/html;charset=utf-8\\r\\n这样子应该就没有问题了,我今天也遇到这个问题了,希望能帮到你,如果你看到的话,麻烦回复我一下。

    2017-12-29 13:52:32  @回复

    回复留言标识 百姓 回复 台小绪: 问题解决,谢谢

    2018-01-21 08:43:36  @回复

    回复留言标识 nuker 回复 百姓: 为啥我的只能发送自己的邮箱 其他的邮箱都发送不了啊

    2018-04-08 16:05:07  @回复

  19. 209楼at : 2017-11-28 15:59:54 评论说: @回复

    Trying to smtp.vip.sina.com:25 Error: Cannot connenct to relay host smtp.vip.sina.com Error: Connection timed out (110) Error: Cannot send email to ddd@ddd.com 一直是这样的提示 。是什么情况?

    回复留言标识 大方 回复 at: Trying to smtp.vip.sina.com:25 Error: Cannot connenct to relay host smtp.vip.sina.com Error: Connection timed out (110) 我和你一样, 是服务器无法连接smtp服务器, 我用Vultr会这样, 同样的操作换到阿里云就可以.

    2017-12-21 22:44:44  @回复

    回复留言标识 大方 回复 at: 测试服务器是否可以连接到smtp服务器, 可以在命令行里面这样: telnet smtp.163.com 25 不过我在阿里云不是用的端口25, 因为阿里云封禁了25端口. 我用的465(SSL). 用465端口的时候下面这行代码需要这样写: $smtpserver = "ssl://smtp.163.com";//SMTP服务器

    2017-12-21 22:45:21  @回复

    回复留言标识 nz 回复 大方: 说得好,$smtpserver = "ssl://smtp.qq.com";我本地测试用qq邮箱465端口,密码用授权码;之前没加ssl://这个会报错Trying to smtp.qq.com:465 加了之后立马好了

    2018-01-04 20:30:24  @回复

  20. 208楼大奶兔白糖 : 2017-11-20 19:46:57 评论说: @回复

    请问如何发给多个收送人,使收件人能看到同时发给了哪些人。

  21. 207楼我来说 : 2017-11-07 10:45:45 评论说: @回复

    我使用qq邮箱开启服务也不行,最后使用163邮箱在“设置”-》“POP3/SMTP/IMAP”中找到SMTP服务器“smtp.163.com”,然后获取“客户端授权密码”即为“SMTP服务器的用户密码”

  22. 206楼sii : 2017-11-04 15:51:49 评论说: @回复

    465端口超时咋办

  23. 205楼robin : 2017-10-13 22:06:51 评论说: @回复

    qq邮箱提示 530 Must issue a STARTTLS command first

    回复留言标识 怎么添加附件 怎么添加附件怎么添加附件怎么添加附件怎么添加附件怎么添加附件怎么添加附件怎么添加附件怎么添加附件怎么添加附件怎么添加附件怎么添加附件怎么添加附件怎么添加附件怎么添加附件

    2017-11-02 15:40:22  @回复

    回复留言标识 robin 回复 怎么添加附件: 好像不能添加附件

    2017-12-29 16:01:21  @回复

  24. 204楼雪剑无影 : 2017-10-08 15:41:40 评论说: @回复

    请问使用这个邮件类怎么发附件,解答一下,谢谢!

  25. 203楼weqw : 2017-10-03 16:16:21 评论说: @回复

    Trying to smtp.qq.com:25 220 smtp.qq.com Esmtp QQ Mail Server Connected to relay host smtp.qq.com > HELO localhost 250 smtp.qq.com > AUTH LOGIN NjA0ODk4OTA0 530= 这是什么原因啊 大哥 求救

  26. 202楼weqw : 2017-10-03 16:05:23 评论说: @回复

    失败啊

  27. 201楼Mr w : 2017-09-25 15:15:05 评论说: @回复

    对不起,邮件发送失败!请检查邮箱填写是否有误。试了好几个 还是不行啊

    回复留言标识 aa 回复 Mr w: 我也是这样,解决了吗。。

    2018-01-02 16:27:30  @回复

  28. 200楼bbcad : 2017-09-24 16:06:39 评论说: @回复

    本地测试发送成功,上传到阿里服务器就报错,连接不上服务器

  29. 199楼Felery : 2017-09-14 21:25:32 评论说: @回复

    为什么总是显示发送失败,请检查邮箱是否正确

  30. 198楼大大大大猫咪 : 2017-09-14 11:41:21 评论说: @回复

    Must issue a STARTTLS command first这是为何,不是默认ssl的吗,怎么还要设置tls

  31. 197楼大大大大猫咪 : 2017-09-14 11:40:29 评论说: @回复

    530 Must issue a STARTTLS command first

  32. 196楼小小新 : 2017-09-13 16:34:07 评论说: @回复

    我不知道我是落了什么 一直是报连接超时的错 可不可以解答一下? 研究了好久了~

  33. 195楼鑫哥 : 2017-09-01 12:16:26 评论说: @回复

    请问这段核心代码要怎么用呢?要写在哪里,可以吧具体详细的步骤写出来吗,这个真的没看懂,只看看到都说挺好用,但却不知道怎么用它。分享出来万分感谢,邮件设置失败已经搞了我好几天了,一直没搞好。谁能帮帮忙,谢谢了

  34. 194楼邵崟陟 : 2017-08-30 16:11:26 评论说: @回复

    TP怎么引入

  35. 193楼yao : 2017-08-25 18:01:29 评论说: @回复

    内部服务器错误

  36. 192楼bbddee : 2017-08-22 16:31:43 评论说: @回复

    一次通过,感谢博主

    回复留言标识 Mr w 回复 bbddee:教教我呗!

    2017-09-25 14:58:26  @回复

  37. 191楼chuang_no1 : 2017-07-24 19:19:10 评论说: @回复

    貌似不支持SSL连接,腾讯企业邮箱强制要求SSL的,就用不了了

  38. 190楼小夫子 : 2017-07-20 16:11:03 评论说: @回复

    请问一下怎么再增加一个邮件抄送人?

  39. 189楼Ratel : 2017-07-19 16:53:38 评论说: @回复

    感谢! 学习了

  40. 188楼Ratel : 2017-07-19 16:53:19 评论说: @回复

    哦!!在垃圾箱里。

您的每一个评论都是对我的一份支持

 博客二维码

昵称 *

邮箱 *