01
PHP发送邮件有内置函数mail,但是需要配置sendmail邮件服务器,这不是一个轻松的工作,需要你对邮件工作系统有一个基本的了解(MUA、MTA、MDA等)。我按照网上的各种教程试了一遍仍然发送失败,心灰意冷之下请教我的一个python朋友,结果他20多行代码搞定,嘲笑我php不行(php是世界上最好的语言???)。
02
还好,我发现python导入了一个Smtp包,我想也许php也可以导入来搞定。结果在网上当真找到了发送邮件类Smtp.class.php。附上链接:php利用身smtp类轻松的发送邮件
03
接下来就是按照这个网页上的方法来实战了。先是下载了网页上附带的链接phpmai技术.zip。解压后里面有三个文件:index.html sendmail.php 和Smtp.class.php。Smtp.class.php正是我们找的第三方类,也是我们发送邮件程序里需要require的类。sendmail.php是发送邮件的例程,我们可以模仿它来实现发送邮件的功能。
04
我搭建的PHP运行组件是LAMP。linux下切换到/var/www/html目录下,新建一个文件mail.php,并且把Smtp.class.php复制到这个目录下。在mail.php里面模仿sendmail.php写入发送邮件代码。如下:
代码解析为:
- 第2行导入发送邮件类Smtp.class.php
- 第4行和第5行是smtp服务器和端口号
- 第6行是smtp服务器上你的邮箱账号,第7行是你发信的目的地址
- 第8行同第6行,第9行是你的邮箱账号的授权码,注意不是你的邮箱登录密码。授权码参考QQ邮箱授权码
- 第10、11、12行分别是邮件标题、内容和类型
- 第14行为建立一个smtp对象,第15行设置为true会打印相关调试信息。
- 第16行将设置的参数填入sendmail函数发送
- 剩下行为打印邮件发送成功与否信息
05
经过上述设置后,我希望你也能和我一样能够正确发送邮件了。
在浏览器输入ubuntu地址/mail.php,点击运行。结果显示发送成功!“email has sent!”前面是调试信息。
06
我朋友很快收到了我发的邮件,开森!
07
学会利用网上的资源很重要,PHP本来就是一个快捷开发网页的web语言,不需要重复造轮子,许多函数库可以直接使用。PHP学习的道路还很长,加油。