大家好,今天小编来为大家解答如何使用PHP 发送电子邮件这个问题,很多人还不知道,现在让我们一起来看看吧!
1、使用socket发送原理:使用fsockopen函数打开一个Internet连接。该函数的参数列表为fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout])。这里使用的是SMTP协议。所以端口号为25。连接成功打开后,会返回一个socket句柄。您可以像使用文件句柄一样使用它。可以使用的操作包括fputs()、fgets()、feof()、fclose()等。该函数的返回值如下:
220 服务就绪(socket连接成功时会返回该信息)
221 处理
250 请求电子邮件操作正确
第354章开始发送数据
500 语法错误,命令无法识别
550 命令无法执行,邮箱无效。
552 中断处理:用户超出文件空间
但需要注意的是,使用socket发送时,必须确保PHP的fsockopen()函数开启。您可能需要:
在php.ini 文件中找到allowed_url_fopen=On 并确保该值为On
在php.ini 文件中搜索;extension=php_openssl.dll。如果前面有分号,则去掉分号。
重新启动Web 服务器、apache 或IIS
这里有一个开源的邮件发送类,可以直接用来发送邮件。它采用的是socket发送原理。可供个人测试,供大家参考:sendmail.zip
2、使用mail()函数发送:mail()函数是PHP语言自带的电子邮件发送函数,但并不意味着可以直接使用它来发送电子邮件。您需要配置php.ini 电子邮件信息和sendmail 等组件。支持。
(1)下载sendmail软件(如果使用的是xampp则直接自带),下载地址:http://www.glob.com.au/sendmail/,解压到下面步骤(2)中sendmail的D盘。填写路径
(2)配置php.ini,所需配置内容如下:
【邮件功能】;仅适用于Win32。SMTP=localhostsmtp_port=25;仅适用于Win32.sendmail_from=417204900@qq.com;仅适用于Unix。您也可以提供参数(default: ‘sendmail -t -i’).sendmail_path=’D:/sendmail/sendmail.exe -t -i’ (3) 配置sendmail.ini。所需配置内容如下:
smtp_server=smtp.qq.comsmtp_port=25smtp_ssl=autoerror_logfile=error.logdebug_logfile=debug.logauth_username=yourname 如12@qq.comauth_password=yourpassword 如123456pop3_server=pop3_username=pop3_password=smtp_server=,这个需要填写smtp服务器你想选择的话,可以选择本地搭建,也可以选择163、QQ、gmail中的smtp或pop3服务器(如果是gmail,服务器需要启用ssl_module模块)。注意,第一次使用时,建议去掉“;”前面加上debug_logfile=debug.log,这样就可以记录每封发送的邮件的具体信息。如果发生错误,可以在error.log中找到。 auth_username=,auth_password=需要填写你的stmp账号信息(具体可以google一下),如果是pop3则相应填写。只需填写一个类别即可。
(4) 测试代码
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/137835.html
用户评论
凝残月
这篇文章简直太棒了!我一直在找教程教我怎么用PHP发邮件,结果这里刚好讲清楚了流程和方法,而且示例代码也很易懂。我现在就可以试试了!
有10位网友表示赞同!
一纸愁肠。
写的详细透彻,赞赞赞!对于初学PHP的小白来说非常有用,终于不用再迷航网站看各种版本的代码了!
有5位网友表示赞同!
你很爱吃凉皮
说的没错,邮件发送这块功能在web开发中非常常见,掌握好PHP实现方法真的很有必要。收藏起来以后慢慢学习。
有16位网友表示赞同!
执念,爱
我以前用的是其他语言发邮件,感觉PHP的方式更加便捷高效,而且安全性也比较高,我会尝试一下这篇教程的方法,看看效果怎么样。
有5位网友表示赞同!
没过试用期的爱~
感谢分享!虽然我也是对这方面有一定了解的开发人员,但还是从文中学习到了不少新的知识点和技巧,比如安全检查的部分,确实很值得关注。
有9位网友表示赞同!
话少情在
邮件发送功能在实际应用中经常会用到,特别是网站注册、发货提醒等场景。这种PHP方法简单易学,能够满足大部分需求。
有8位网友表示赞同!
非想
这篇文章真的太棒了!我之前一直用系统的邮件工具发邮件,发现效率实在太低了,现在学会PHP代码,感觉可以大大的提高工作效率!
有11位网友表示赞同!
残留の笑颜
说起来,最近项目中确实也需要用到发邮件的功能,幸好找到了这篇教程,步骤简单清晰易懂,试了一下就成功了!
有6位网友表示赞同!
颓废人士
看起来不错,但我想知道如果要把邮件发送给大量的用户怎么办?这个教程里提到有没有批量发送邮件的方法?
有5位网友表示赞同!
有阳光还感觉冷
这个方法挺简单的, 但是对于安全性,我觉得还需要谨慎一些。例如如何在发送邮件的过程中保护用户的敏感信息,这些方面的细节没有提及到。
有12位网友表示赞同!
独角戏°
文章讲解还不错,能让我清晰的了解如何用PHP实现邮件发送的基本步骤,但是我更想了解一下不同邮箱服务器之间差异带来的影响以及如何对接不同的SMTP服务呢?
有18位网友表示赞同!
孤独症
我看了一下代码示例,感觉代码逻辑很混乱,注释也很多。是否可以使用更简洁高效的方法来实现邮件发送任务呢?还有没有更加易于阅读的代码结构分享?
有9位网友表示赞同!
断秋风
对于我来说,这篇教程还是有点入门的意思。我希望看到一些更深入的讲解,比如如何配置不同的邮件主题、附件内容等等更高级的操作方法。
有18位网友表示赞同!
冷风谷离殇
说实话,这种简单的PHP邮件发送流程可能在大型线上系统中不够灵活和高效吧?需要考虑更多的功能支持和安全措施才是王道啊!
有8位网友表示赞同!
箜篌引
我尝试运行了代码示例,发出去的邮件竟然没有到达收件箱。怀疑是SMTP服务器配置问题导致的?希望作者能给出一些解决常见问题的建议。
有16位网友表示赞同!
烟花巷陌
虽然教程讲解很清楚,但我感觉这个方法还是太依赖于外部服务。有没有一种更独立、自主的方法可以实现邮件发送功能呢?
有9位网友表示赞同!
我绝版了i
个人认为这篇文章对初学者很有帮助,尤其是那些想深入研究PHP框架开发的同学,希望能看到更多类似的实战内容分享!
有13位网友表示赞同!
信仰
总体来说还是一篇不错的文章,只是希望作者能更加重视安全性方面的内容,比如如何验证用户邮箱地址,如何防止邮件发送时的安全风险等。<br />
有14位网友表示赞同!