PHP mail()函数不使用“from”地址

时间:2009-05-17 06:56:06

标签: php email

$to = "me@mydomain.com";
$subject = "Auction Registration Confirmation";
$from = "From: donot-reply@mydomain.com";
$body = "Test Message";
if (mail($to, $subject, $body, $from)) {
    echo("<b>Message sent</b>");
    header( "Location: http://www.mydomain.com/thankyou.html" );
}  else {
    echo("<b>Message failed</b>");
}

现在的问题是,当发送电子邮件时,起始地址不是我要求的,而是服务器登录名。

有关使用来自电子邮件ID替换服务器登录名的任何想法。

4 个答案:

答案 0 :(得分:0)

您的PHP代码看起来没有任何问题 - 我有相同的代码执行相同的工作,它工作正常。

可能是您的电子邮件设置错误配置了什么?

答案 1 :(得分:0)

PHP邮件功能依赖于服务器上运行的MTA。我敢打赌,你的MTA设置为强制$ from变量到你的登录名。

答案 2 :(得分:0)

你试过这个吗?它对我很有用

<?php
$to = "email@to.com";
$subject = "subject";
$message = "message";
$from = "email@from.com";
$headers = "From: $from";
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?> 

答案 3 :(得分:0)

你可以尝试

mail($to, $subject, $body, $from, "-f $from");

这适用于某些配置,实际上取决于服务器设置。 否则,按照上面的建议编辑MTA设置,或者完全跳过mail()并使用类似PHPmailer的类直接连接到SMTP服务器。