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

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

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

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


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


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


以下就是核心代码:


<?php

require_once "email.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学习博客

 

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

分享到:

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

  1. 161楼许发君博客 : 2017-02-23 10:20:18 评论说: @回复

    大神,很实用啊

  2. 160楼zzzskd : 2017-02-22 09:41:22 评论说: @回复

    报错了请问怎么解决 Warning: require_once(email.class.php) [function.require-once]: failed to open stream: No such file or directory in ...

    回复留言标识 小张 Error: Cannot resolve MX "" Error: Cannot send email to

    2017-02-27 17:25:31  @回复

    回复留言标识 小张 Error: Cannot resolve MX "" Error: Cannot send email to

    2017-02-27 17:26:31  @回复

  3. 159楼旺仔 : 2017-02-16 17:45:19 评论说: @回复

    要是没有解决可以去这个博客去看看,比较适合新手:http://blog.csdn.net/zhong960725/article/details/55212213

  4. 158楼DoubleL : 2017-02-09 08:50:39 评论说: @回复

  5. 157楼Huang : 2017-01-19 21:05:42 评论说: @回复

    求楼主帮忙啊?查了一天了没解决。Trying to smtp.126.com:25 Error: Cannot connenct to relay host smtp.126.com Error: php_network_getaddresses: gethostbyname failed. errno=0 (0) Error: Cannot send email to weipt@126.com

  6. 156楼 : 2017-01-17 21:16:36 评论说: @回复

    Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; smtp has a deprecated constructor in C:\\wamp\\www\\phpmail\\email.class.php on line 2

  7. 155楼表弟很心软 : 2017-01-14 21:12:36 评论说: @回复

    Trying to ssl://smtp.qq.com:465 Error: Cannot connenct to relay host ssl://smtp.qq.com

  8. 154楼表弟很心软 : 2017-01-14 21:12:26 评论说: @回复

    Error: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (0) Error: Cannot send email

  9. 153楼MT : 2016-12-27 16:30:00 评论说: @回复

    为什么不能发送图片呢?发送会报424

  10. 152楼小迪 : 2016-12-15 10:41:03 评论说: @回复

    用QQ不知道为什么就是不行,Deprecated: Function ereg() is deprecated in E:\\\\phpStudy\\\\WWW\\\\email\\\\email.class.php on line 424

    回复留言标识 小丑 回复 小迪: 可能你设置有问题吧

    2016-12-15 16:06:16  @回复

  11. 151楼小迪 : 2016-12-15 10:39:08 评论说: @回复

    报错了

  12. 150楼wu+ : 2016-12-15 09:52:31 评论说: @回复

    A secure connection is requiered(such as ssl). More information at http://service.mail.qq.com/cgi-bin/help?id=28" Error: Error occurred while sending HELO command. 请问是什么原因啊?

  13. 149楼wu+ : 2016-12-15 09:52:06 评论说: @回复

    用qq的邮箱发邮件一直报错,

  14. 148楼小黄人 : 2016-12-09 14:22:14 评论说: @回复

    亲测有效,版主叼叼叼

    回复留言标识  回复 小黄人: 你的环境怎么样啊,我用的php7.0,一直报错,第二行就报错 然后424行报ereg函数找不到

    2017-01-17 21:26:29  @回复

  15. 147楼是是是 : 2016-12-07 13:34:49 评论说: @回复

    Deprecated: Function ereg() is deprecated in D:\\phpStudy\\WWW\\phpmail\\email.class.php on line 424 是什么错啊

  16. 146楼是是是 : 2016-12-07 13:34:19 评论说: @回复

    怎么不好使

  17. 145楼蜗牛 : 2016-12-01 21:53:42 评论说: @回复

    用从数据库获取数据发送邮件,收件人收到的内容显示乱码

  18. 144楼rb : 2016-11-30 12:11:26 评论说: @回复

    Deprecated: Function ereg() is deprecated in F:\\phpStudy\\WWW\\phpmail\\email.class.php on line 424

  19. 143楼对方 : 2016-11-29 09:50:02 评论说: @回复

    第三方的

  20. 142楼jesslu : 2016-11-18 11:36:45 评论说: @回复

    我的报成功,但是邮件就是没有接收到

    回复留言标识 zoe 回复 jesslu: 默认是true吧

    2016-11-30 17:49:43  @回复

  21. 141楼@ : 2016-11-17 10:53:52 评论说: @回复

    需要什么类型的邮箱,有什么限制吗,环境呢,我的老是失败

  22. 140楼listen : 2016-11-14 18:23:14 评论说: @回复

    非常好用,测试成功,但是版主,好像少了个发件人吧,发件人直接显示发件邮箱我觉得不够人性化,应该显示发件人,如发件人那栏应显示:中国移动 中国平安 等类似标题才对

  23. 139楼擦擦擦 : 2016-11-08 14:44:06 评论说: @回复

    顶顶顶顶

  24. 138楼测试成功 : 2016-10-31 10:37:45 评论说: @回复

    感谢博主,很好的例子。

  25. 137楼昵称 : 2016-10-30 21:04:24 评论说: @回复

    可以加昵称么?

  26. 136楼大中华 : 2016-10-28 15:14:15 评论说: @回复

    Deprecated: Function ereg() is deprecated in E:\\phpStudy\\WWW\\email\\email.class.php on line 424 Deprecated: Function ereg_replace() is deprecated in E:\\phpStudy\\WWW\\email\\email.class.php on line 440

  27. 135楼大中华 : 2016-10-28 10:56:53 评论说: @回复

    SMTP服务器 配置求解

    回复留言标识 旺仔 回复 大中华: 要是没有解决可以去这个博客去看看,比较适合新手:http://blog.csdn.net/zhong960725/article/details/55212213

    2017-02-16 17:47:09  @回复

  28. 134楼大中华 : 2016-10-28 10:56:08 评论说: @回复

    SMTP服务器怎么玩呀?

  29. 133楼大中华 : 2016-10-28 10:55:27 评论说: @回复

    报错亲: Deprecated: Function ereg() is deprecated in E:\\phpStudy\\WWW\\email\\email.class.php on line 424

  30. 132楼西瓜 : 2016-10-27 16:16:50 评论说: @回复

    发送邮件是成功了,但是页面包错,,$smtp->sendmail($smtpemailto, $smtpusermail, $mailsubject, $mailbody, $mailtype);就是这句话报错,怎么处理

  31. 131楼mico : 2016-10-24 21:56:22 评论说: @回复

    发邮件我的总是不成功,几个邮箱都试了,求解,博主。下面拟是我的主要代码: $smtpserver = "smtp.163.com";//SMTP服务器 $smtpusermail = "13021469683@126.com";//SMTP服务器的用户邮箱 $smtpuser = "13021469683";//SMTP服务器的用户帐号 ?>

  32. 130楼绿竹噬魂 : 2016-10-22 14:23:23 评论说: @回复

    成功了 谢谢楼主

  33. 129楼qingwen : 2016-10-11 18:11:40 评论说: @回复

    请问有post方式的链接吗 比如 daixiaorui.com/mail.php?收件人&标题&内容

  34. 128楼呵呵哈哈哈 : 2016-10-05 23:22:56 评论说: @回复

    下载链接挂了,麻烦修复一下

    回复留言标识 IT共享导航 回复 呵呵哈哈哈: 没挂啊

    2016-10-06 19:12:42  @回复

  35. 127楼xxx如何解决? : 2016-10-05 23:21:57 评论说: @回复

    Trying to smtp.126.com:25 Error: Cannot connenct to relay host smtp.126.com Error: php_network_getaddresses: gethostbyname failed. errno=0 (0) Error: Cannot send email to weipt@126.com

    回复留言标识 黄荣蓉 回复 xxx如何解决?: 您好!您解决了嘛,我跟你出现一样的问题

    2017-01-19 20:57:13  @回复

    回复留言标识 黄荣蓉 博主,我出现和127楼一样的问题,查了半天了,没有解决,求助啊

    2017-01-19 20:58:53  @回复

  36. 126楼不错 : 2016-10-03 13:32:29 评论说: @回复

    不错 有帮助

  37. 125楼小满 : 2016-09-17 23:15:51 评论说: @回复

    我按走说法做成功了(有时侯会失败),只是反应有时有些慢,我用的是网易的邮箱,QQ的没有成功,我还试了同时发2箱邮箱的作法,邮箱地址直接加个逗号分开就行了

  38. 124楼围观群众 : 2016-09-02 00:49:34 评论说: @回复

    感谢楼主,试了下非常好用,反正我用126邮箱成功发信

  39. 123楼苍白 : 2016-09-01 14:42:39 评论说: @回复

    博主您好,我用QQ邮箱不成功,不知道怎么回事儿,求解

  40. 122楼箫然 : 2016-09-01 09:15:05 评论说: @回复

    发送的信息content总是显示为0 是怎么回事儿。

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

 博客二维码

昵称 *

邮箱 *