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

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

2013-07-31 00:09评论数 288 ⁄ 被浏览 427344 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 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。

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

  1. 287楼shuiyuan : 2023-11-27 15:26:20 评论说: @回复

    很好的方法值得推荐

  2. 286楼 : 2021-07-06 17:08:33 评论说: @回复

    不行啊我各种报错啊

  3. 285楼 : 2021-07-06 16:24:12 评论说: @回复

    Trying to SMTP.163.com:465 Error: Remote host returned "" Error: Cannot connenct to relay host SMTP.163.com Error: (0) Error: Cannot send email to 1

  4. 284楼test Tp : 2021-07-02 22:51:06 评论说: @回复

    ' and 1=1

  5. 283楼lh : 2021-06-01 08:35:46 评论说: @回复

    你好,我自己做一个html的网页,想问问怎么样才能使用phpmailer通过smtp发送在线邮件?怎么把phpmailer和html网页结合起来使用?谢谢。

  6. 282楼阁主 : 2020-04-30 23:39:12 评论说: @回复

    Fatal error: Uncaught Error: Class 'Smtp' not found in D:\\phpEnv\\www\\localhost\\email\\sendmail.php:34 Stack trace: #0 {main} thrown in D:\\phpEnv\\www\\localhost\\email\\sendmail.php on line 34 很奇怪,不知什么原因!

  7. 281楼123 : 2020-04-28 16:49:36 评论说: @回复

    怎么修改发件人呢

  8. 280楼 : 2019-10-04 15:42:15 评论说: @回复

    500错误怎么解决

    回复留言标识 萌芽自己扛 回复 风: 怎么解决的

    2020-02-09 11:12:11  @回复

  9. 279楼没有自定义发件人名称 : 2019-06-21 11:02:09 评论说: @回复

    没有自定义发件人名称,不自定义发件人名称,这样邮箱直接显示发件人名称为发件人邮箱地址,不太好看

    回复留言标识 微信 Lvcchh 回复 没有自定义发件人名称: 无发自定义发件人名称呀,怎么加上呢?

    2020-12-06 22:50:44  @回复

    回复留言标识 微信 Lvcchh 回复 没有自定义发件人名称: 搞定了,有个参数修改一下就可以了

    2020-12-07 11:47:22  @回复

  10. 278楼小江 : 2019-06-12 14:50:36 评论说: @回复

    点击提交表单的时候,如何当前页面弹出弹窗

  11. 277楼随行付mpos : 2019-03-15 17:13:28 评论说: @回复

    我怎么会每天收到一封英文的邮件呢,好像是广告,你们有没有收到? 本文章来源于 代潇瑞博客 原文地址:https://www.daixiaorui.com/read/16.html

  12. 276楼随行付mpos : 2019-03-15 17:13:24 评论说: @回复

    我怎么会每天收到一封英文的邮件呢,好像是广告,你们有没有收到? 本文章来源于 代潇瑞博客 原文地址:https://www.daixiaorui.com/read/16.html

  13. 275楼随行付mpos : 2019-03-15 17:13:16 评论说: @回复

    我怎么会每天收到一封英文的邮件呢,好像是广告,你们有没有收到?

  14. 274楼随行付mpos : 2019-03-15 17:12:37 评论说: @回复

  15. 273楼随行付mpos : 2019-03-15 17:12:36 评论说: @回复

  16. 272楼随行付mpos : 2019-03-15 17:12:14 评论说: @回复

    我怎么会每天收到一封英文的文件呢,应该是广告,你们有没有?

  17. 271楼hxk : 2019-02-26 14:33:19 评论说: @回复

    TLS怎么能支持?

  18. 270楼sy : 2019-02-25 17:21:11 评论说: @回复

    我在自己电脑上测试没问题,放在服务器上就500 Internal Server Error

  19. 269楼dd : 2019-01-24 10:56:11 评论说: @回复

    厉害了,学习了

  20. 268楼风见 : 2019-01-15 15:21:09 评论说: @回复

    想做成:称呼、电话、留言内容。该怎么修改??或者怎么添加??求大神解答

  21. 267楼2366621450 : 2019-01-15 14:03:16 评论说: @回复

    Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; smtp has a deprecated constructor in2发送邮件成功 发送是成功了,且受到了邮件,但是报错咋整...

  22. 266楼它乡 : 2019-01-06 17:51:39 评论说: @回复

    我测试时候点了多少次发送 它就发送多少次相同内容到邮箱 请问如何限制发送次数

  23. 265楼caihua888 : 2018-12-17 10:07:13 评论说: @回复

    //$header .= "Content-Type:text/html\\r\\n"; $header .= "Content-Type:text/html;charset=utf-8\\r\\n"; 发邮件如果乱码 这样解决 修改 smtp.class.php

  24. 264楼小追求 : 2018-12-10 23:13:30 评论说: @回复

    如何才能做到在当前页 部分刷新 提交表单 提示成功还是是失败??

  25. 263楼KK : 2018-11-16 11:22:38 评论说: @回复

    请问如何修改发件人的名称呢?

  26. 262楼xxxs : 2018-11-04 14:43:43 评论说: @回复

    我本地电脑可以发,但放在服务器上会提示:Trying to smtp.163.com:25

    回复留言标识  回复 xxxs: 我本地不行啊

    2021-07-06 17:34:55  @回复

  27. 261楼zhang : 2018-11-04 12:53:35 评论说: @回复

    你好,邮件发不了。提示如下,麻烦帮我看看。 Trying to smtp.163.com:25 220 163.com Anti-spam GT for Coremail System (163com[20141201]) Connected to relay host smtp.163.com > HELO localhost 250 OK >

    回复留言标识 xxxs 我本地电脑可以发,但放在服务器上会提示:Trying to smtp.163.com:25

    2018-11-04 14:36:37  @回复

    回复留言标识 xxxs 回复 xxxs: 已找到原因了,是服务器禁止25端口原因,修改一下代码即可 $smtpserver = "ssl://smtp.163.com";//SMTP服务器 $smtpserverport =465;//SMTP服务器端口

    2018-11-04 15:38:09  @回复

  28. 260楼小李 : 2018-10-18 17:35:32 评论说: @回复

    如何在源码中填入 收件人,主题,正文,谢谢在!!

  29. 259楼小李 : 2018-10-18 17:34:10 评论说: @回复

    您好,怎么在源码中填入收件人邮箱,主题,和正文

  30. 258楼dd : 2018-10-14 13:06:53 评论说: @回复

    测试错误,求指点。

  31. 257楼dd : 2018-10-14 13:05:53 评论说: @回复

    date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.

  32. 256楼dd : 2018-10-14 13:05:38 评论说: @回复

    Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the

  33. 255楼nicheng : 2018-10-11 11:48:01 评论说: @回复

    ceshi

  34. 254楼drice : 2018-10-10 17:05:31 评论说: @回复

    本地可以,服务器上测试不可以。。。

  35. 253楼drice : 2018-10-10 14:53:05 评论说: @回复

    亲测一下

  36. 252楼求解 : 2018-09-23 00:42:29 评论说: @回复

    Trying to smtp.163.com:25 Error: Cannot connenct to relay host smtp.163.com Error: Connection timed out (110) 出现这个求解

  37. 251楼hk : 2018-09-13 18:14:40 评论说: @回复

    MAIL FROM: 250 Ok > RCPT TO: 501 Bad address syntax Error: Remote host returned "501 Bad address syntax" Error: Error occurred while sending RCPT TO command. Error: Cannot send email to

    回复留言标识 eee 回复 hk: 问题解决了吗

    2019-03-05 00:08:42  @回复

    回复留言标识 小刚 回复 hk: 怎么解决的啊

    2019-05-11 22:13:21  @回复

  38. 250楼力匠设计 : 2018-09-08 22:05:45 评论说: @回复

    你好请问我的留言也想你的这样有邮箱,但是怎样添加到这个源码上去?

  39. 249楼34537 : 2018-09-06 20:38:12 评论说: @回复

    TH LOGIN MjUzNDAwODkyOQ ==RCPT TO: 501错误的地址语法错误:远程主机返回“501错误的地址语法”错误:发送RCPT TO命令时出错。错误:无法发送电子邮件至与远程主机断开连接

  40. 248楼ywb888 : 2018-08-16 10:54:54 评论说: @回复

    很奇怪,最近我两台机器分别运行这个php,一台正常,另外一台打开调试开关后提示:Trying to smtp.sohu.com:25 Error: Cannot connenct to relay host smtp.sohu.com Error: Invalid argument (22) Error: Cannot send email to 702730136@qq.com

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

 博客二维码

昵称 *

邮箱 *