1

我有一个简单的表格,我正在尝试在提交时发送一封电子邮件。我正在运行 XP Pro(这是工作中的一个副项目,而不是我的电脑),所以我已经启动并运行了 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

我没有收到任何错误,它会回显 Message Sent,所以我不确定我哪里出错了。最初我将它设置为使用 localhost 但它不起作用,所以现在我只使用我在 IIS 设置中定义的 IP,我还在中继限制下定义了环回和我的 IP。我唯一的猜测是某些东西可能没有设置为正确使用 LN,比如它正在寻找 Outlook?另外我没有安装 pear 也不在乎使用它,也尝试了 PHPMailer 无济于事,我只想让它工作。

4

1 回答 1

2

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

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

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

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

于 2012-10-25T04:10:26.920 回答