为什么我的php邮件没有收到?

时间:2012-10-25 03:42:38

标签: email iis lotus-notes php

我有一个简单的表单,我试图在提交时发送一封电子邮件。我正在运行XP专业版(这是一个侧面项目在工作,而不是我的电脑)所以我启动了IIS并运行,我安装了Lotus Notes客户端6.5。我已经配置了我的php.ini文件以及我的IIS。

$to = "recipientemail@xxx.com";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
if (mail($to, $subject, $body)) {
echo("<p>Message successfully sent!</p>");
} else {
echo("<p>Message delivery failed...</p>");
}

我的php.ini

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

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

我没有收到任何错误,它回复消息已发送,所以我不确定我哪里出错了。最初我将它设置为使用localhost并且它不能正常工作所以现在我只使用我在IIS设置中定义的IP,我还在继电器限制下定义了环回和我的IP。我唯一猜测的可能是某些东西没有设置好与LN一起正常使用,比如它可能正在寻找Outlook? 另外我没有装梨,也不在乎使用它,也试过PHPMailer无济于事,我只是想让这个工作。

1 个答案:

答案 0 :(得分:2)

如果MY.IP.MY.IP上的服务器没有运行SMTP服务器(不是邮件客户端),那么您对mail()的调用实际上不会做任何事情。

如果您确实拥有有效的SMTP服务器,则很可能需要用户/通行证才能接受您的任何邮件(或者它将成为垃圾邮件发送者的开放中继)。例外情况通常是邮件服务器将接受来自localhost的邮件作为受信任的邮件。

我认为php.ini不支持SMTP AUTH凭据,因此您可能希望尝试使用PEAR Mail包,并直接使用您已拥有访问凭据的SMTP服务器进行发送。

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