【发布时间】:2012-09-22 21:04:19
【问题描述】:
我正在开发一个应用程序,并且一直在测试 PHP 中的 mail() 函数。以下在我的本地机器上工作得很好,可以向我自己发送电子邮件,但是一旦我尝试将它从测试环境发送到我的本地机器,它就会默默地失败。
我仍会收到“已发送邮件”消息,但未发送任何消息。我在 php.ini 文件中打开了邮件日志记录,但刷新页面后似乎也没有填充。
同样,.php 文件和 php.ini 文件在两种环境中是相同的。测试环境开放了25端口,我们使用的是Microsoft Exchange服务器。
<?php
$to = "user@example.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "user@example.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>
php.ini 文件的 SMTP 区域:
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = exhange.server.org
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = user@example.com
【问题讨论】:
-
Windows? Linux?你检查邮件服务器的邮件队列和日志文件了吗?
-
@pencil 两台机器都在 Windows 上。交换服务器日志没有显示来自服务器的电子邮件的任何移动,这很奇怪。
-
两台机器都有本地 Microsoft Exchange 服务器? php.ini 是什么样的?
-
不要使用
mail。使用PHP Mailer- 它更好、更简单,并且可以很容易地用于通过mail无法做到的smtp(甚至是远程)发送。并且mail可以被禁用。
标签: php exchange-server