【问题标题】:Send an E-mail from a php code从 php 代码发送电子邮件
【发布时间】:2013-05-06 11:11:46
【问题描述】:

我想使用 php 代码发送电子邮件,我正在使用 wampserver。

出现错误:

 mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\Newsletter1\index.php on line 29

我的文件 php.ini

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = myEmail@gmail.com

还有什么需要做的配置吗?

更新

我正在使用邮件功能向订阅者发送时事通讯,我现在正在本地测试,然后我将在生产环境中测试代码

【问题讨论】:

  • 您的机器上没有安装邮件服务器

标签: php email smtp wampserver


【解决方案1】:

您需要在 localhost 上运行 SMTP 邮件服务器守护程序。如果您使用的是 unix 主机并且不想设置完整的 SMTP 代理,请尝试删除 SMTP 配置部分,从而直接使用 sendmail。来自文档:

mail() 的 Windows 实现在许多方面与 Unix 实现不同。首先,它不使用本地二进制文件来编写消息,而仅在直接套接字上运行,这意味着需要 MTA 侦听网络套接字(可以在 localhost 或远程计算机上)。

【讨论】:

  • 我应该下载邮件服务器吗?
  • 您在服务器上运行 Windows 吗?如果是这样,最简单的方法是使用 IIS SMTP 服务器,请参阅此Microsoft TechNet article。如果运行 Linux/BSD,您可以使用 Postfix(一个真正的 SMTP 代理)或直接从 mail() 发送(不需要 SMTP),这要归功于 sendmail 工具。如果您想发送大量电子邮件(邮件列表,希望没有垃圾邮件),那么您肯定需要一个 SMTP 代理。
  • 如果这解决了您的问题,请考虑marking this answer as accepted
【解决方案2】:

检查你的防火墙,也许 php 被阻止连接服务器。或者尝试将 localhost 更改为 127.0.0.1 。

【讨论】:

    【解决方案3】:

    您需要在您的服务器上安装 smtp 服务器,或者您需要连接到外部 smtp 服务器以发送电子邮件。

    要通过外部 smtp 连接,您可以使用

    http://pear.php.net/package/Mail

    这里也回答了您的问题以及如何使用它的示例。

    smtp configuration for php mail

    【讨论】:

      【解决方案4】:

      如果您正在处理测试环境,请查看此链接:http://www.toolheap.com/test-mail-server-tool/

      这个小应用程序将在您的计算机上模拟一个 SMTP 服务器。

      它为您提供了一些关于如何为您的 php 应用程序测试和调试邮件功能的提示。

      【讨论】:

      • 请注意,这(顾名思义)是一个测试服务器,可能不适合生产环境。
      • 好吧,我不会将 WAMP 用作生产环境
      • 你永远不会知道...此外,StackOverflow 在应用服务器上使用 Windows,尽管有反向代理。
      猜你喜欢
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多