当前位置: 代码迷 >> PHP >> 在PHP中施用SMTP发送邮件
  详细解决方案

在PHP中施用SMTP发送邮件

热度:50   发布时间:2016-04-28 23:36:43.0
在PHP中使用SMTP发送邮件

今天一个朋友问我如何在PHP中发送邮件,遂我让他去百度谷歌一搜一大把。良久之后我问他问题解决与否,他很失落地表示网上的教程都是一个模板,按照他们的来会有一些问题,所以我整理了一下,准备重新把这个方法总结一下,以便留作将来参考。

?

?

1.什么是SMTP

SMTP的全称是Simple?Mail?Transfer?Protocol,即简单邮件传输协议,简单来理解,这个玩意就是拿来发送邮件的,至于具体怎么去实现的,完全不需要深究,因为我只需要它的这个功能而已。

?

?

2.使用相应的软件来实现SMTP

我选择了hMailServer,个人感觉这个软件还不错,具体下载地址可以到这里寻

找最新版本

http://www.hmailserver.com/index.php?page=download

?

?

3.配置hMailServer

软件下好了,至于安装那都是千篇一律了,安装好之后进行登录,重点讲配置这一块。

?

?

?

首先,看看Status中的服务是否启动了,启动了之后进行下一步

?

?

?

接着找到Domain,选择右边框体的Add

?

?

?

?

接着,选中General选项卡,在Domain中写入你想要的域名,比如我使用benzlee.com。这里有个误区,很多人问,在这里不应该填写163.com或者sina.com或者tom.com这些邮箱吗?就在这一点中,很多教程都对大家产生了误导——我现在是用自己的电脑作为服务器发送邮件,为什么还要写上他们的域名?我当然可以自定义自己喜欢的域名,跟什么163.com什么sina.com完全没有任何关系。

?

?

?

?

然后,选中选项卡Limits,按照下图所示进行数据设置,这里主要是对发送邮件大小的一些限制,可以根据自己的需要调节

?

?

?

?

接下来,该要创建自己的邮件帐户了,也就是说,你使用该帐户形式发送邮件。选择benzlee.com下的Accounts,点击Add,添加自己的帐户信息

?

?

?

?

General选项卡的Address写入自己想要的帐户名,比如我设定为benzlee,输入自己的密码,我默认为空(这个密码是随意定的,除非你要认证该帐户),设定Maximum?size?1000,这样,帐户就创建好了

?

?

?

?

然后,选择Setting->Protocols,将IMAP前面的勾去掉

?

?

?

接着,选择SMTP,切换到Delivery?of?e-mail选项卡,根据图中进行设置

?

?

?

然后,选择Advanced->Auto-ban,把Enabled前面的勾去掉

?

?

?

?

然后切换到IP?RangesMy?Computer,进行如下设置

?

?

?

?

最后切换到Internet下,进行如下设置

?

?

?

?

搞定,hMailServer配置完毕。进入下一步

?

4.修改php.ini的内容,修改内容如下:

?1)修改SMTP?=?localhost

?2)修改[email protected],这里特别注意要去掉前面的分号,否则该句子算是被注释。这个句子是指该e-mail是由谁发送出去的,[email protected]就是刚才自己配置的邮件帐户。

?3)修改完成之后千万记得重启下Apache,否则就没有效果了。

?

5.自己写一个mail.php程序,可以使用如下代码:

?

<?php

$content?=?"This?is?a?mail?from?benzlee";???????//此处为邮件内容

$content?=?wordwrap($content,70);?????//?如果一行大于?70?个字符,使用?wordwrap()

mail("[email protected]","This?Is?My?SMTP",$content);????//调用PHP自带的mail函数,第一个参数为发送对象,第二个为邮件标题,第三个为邮件内容。

?>

?

[email protected]就是你想发送邮件的信箱地址,可以改成自己常用的信箱进行验证。

?

6.最后调用这个写好的php文件就能发送邮件了,大功告成。

没有收到自己的邮件?别纠结,去垃圾邮件箱看看你就知道了。。

最后。转载请注明出处,道理你懂的。

  相关解决方案