现在的位置: 首页产品技术>正文
Windows上如现实现PHP邮件发送
2009年04月14日 产品技术 暂无评论

这本来是一个很简单的问题,不值得专门写下来,可是最近亿枝客注册验证邮件总是发不出来,技术也一直没有搞定,我们就从网上找啊,找了半天,网上解决办法一大堆,就是解决不了问题,最后经过网上有些人提示,以及我们多次尝试,总算找到原因。

PHP在windows上实现邮件发送有三种方法,

  • 通过 PHP 函数的 sendmail 发送(推荐此方式)
  • 通过 SOCKET 连接 SMTP 服务器发送(支持 ESMTP 验证)
  • 通过 PHP 函数 SMTP 发送 Email(仅 Windows 主机下有效, 不支持 ESMTP 验证)

第一种最简单,我们也是用这种,只需要选择一下。但还是必须完成两个步骤:

1、在php.ini中找到相应位置,并进行相关设置

[mail function]
; For Win32 only.
SMTP = mail.yicike.com
smtp_port = 25

; For Win32 only.
sendmail_from = serv@yicike.com

2、这一步很重要,我们的问题就出在这里。到邮件服务器上进行设置,我们用的是winmail,设置界面如下:

信任主机

其实就是将我们WEB服务器的IP设置为邮件服务器的信任主机。不过,我还设置了外域直接递送,如下:

外域直接发送

第二种是利用SOCKET连接 SMTP 服务器发送(支持 ESMTP 验证) ,这个办法其实是很好,可能是因为PHP代码复杂的原因,大家都不推荐,参考DISCUZ设置如下:

设置 SMTP 服务器的地址:mail.yicike.com

设置 SMTP 服务器的端口:25

SMTP 服务器要求身份验证:   是/否

如果 SMTP 服务器要求身份验证才可以发信,请选择“是”

发信人邮件地址: ser@yicike.com

SMTP 身份验证用户名: ser@yicike.com

SMTP 身份验证密码: 123456

第三种,通过 PHP 函数 SMTP 发送 Email(仅 Windows 主机下有效, 不支持 ESMTP 验证),参考DISCUZ界面设置

SMTP 服务器:  mail.yicike.com

SMTP 端口: 25

这个方法我没有测试,估计与第一个的区别,在不需要进行PHP.INI的相关设置,直接把设置放到应用程序代码里,如果采用这种方式,建议进行第一种方法里提到的信任主机设置进行操作,否则我觉得不会成功的。

原创文章,转载请注明: 转载自读思客

本文链接地址: Windows上如现实现PHP邮件发送

给我留言

留言无头像?


×
腾讯微博