PHP邮件()不工作

PHP邮件()不工作,php,Php,我正在用MAMP在我的家用电脑上建立一个网站。我正在使用的代码使用PHP mail()函数发送电子邮件,但每当我测试它时,邮件都不会被发送 我的电脑已连接到网络,但我想知道本地主机是否有阻止邮件发送的原因。我没有收到任何错误信息 有什么想法吗?您需要设置SMTP服务器以便能够使用邮件功能,或者您可以使用,使用它您可以避免使用邮件功能和设置问题,phpmailer需要加载套接字扩展才能正常工作。PHP可以通过两种方式之一发送邮件 第一个,也是非Windows系统上的默认设置,是使用系统上安装的本地

我正在用MAMP在我的家用电脑上建立一个网站。我正在使用的代码使用PHP mail()函数发送电子邮件,但每当我测试它时,邮件都不会被发送

我的电脑已连接到网络,但我想知道本地主机是否有阻止邮件发送的原因。我没有收到任何错误信息


有什么想法吗?

您需要设置SMTP服务器以便能够使用
邮件
功能,或者您可以使用,使用它您可以避免使用邮件功能和设置问题,
phpmailer
需要加载套接字扩展才能正常工作。

PHP可以通过两种方式之一发送邮件

  • 第一个,也是非Windows系统上的默认设置,是使用系统上安装的本地邮件传输代理。这将是“sendmail”或与之兼容的应用程序,最流行的可能是postfix

  • 另一种是通过SMTP连接到某个邮件服务器


  • 您需要在本地系统上安装邮件传输代理(并正确设置),或者编辑PHP的配置以指定SMTP服务器地址和端口。

    是的,有些东西可能会阻止本地托管的邮件。首先,您的ISP可以阻止SMTP到ISP以外的服务器。如果您的ISP支持阻止SMTP,请咨询他们。。。或者试着用电传发送某人的MX端口25,你会得到回复吗

    如果您的ISP阻止smtp,您仍然可以发送邮件,但首先您必须通过ISP邮件服务器等托管电子邮件服务器中继该邮件。这个过程叫做“智能托管”,你可以搜索更多信息

    即使您在端口25上未被阻止,许多站点也会拒绝或丢失来自动态或住宅IP地址的smtp通信,因此,智能主机的建议也是如此

    我还建议不要在PHP中使用内置的mail()函数。。。使用替代和改进它的东西,就像或。同样,请使用SMTP方法,因为它比直接发送或调用Sendmail更可靠

    通过telnet手动执行SMTP,确认此问题非常重要。这样就可以将问题与PHP隔离开来。我做ISP支持多年,看到了很多这个问题。大多数人都正确设置了php和mail,但却被SMTP的后台网络问题所困扰


    如果安装了Wireshark,它可以记录网络流量,您可能会看到实际的SMTP流量,例如,远程服务器可能会拒绝您的连接。Wireshark很有帮助,但解决这个问题并不需要它。祝你好运。

    mail()函数将OSX视为Unix系统。您需要一个本地邮件服务器才能正常工作(postfix/sendmail/etc.)@mario我们需要一个关闭评论作为回答按钮:)Ummm可能重复,这与更改SMTP端口号的问题如何相同?也许你认为它有一个相似的答案,但即使我怀疑,这也不意味着它是同一个问题。@thomasrutter-这个问题有很多重复的地方。我选择的那个恰好是我最近看到的,在我的脑海里是新鲜的。我相信我本可以更彻底地找到一个更精确的副本。是的——我使用的是运行postfix libs的服务器——您需要一些库来处理此功能。