php sendmail标头无法正常工作

时间:2013-09-29 12:23:21

标签: php email

我的Mailer类中有以下标题

// domain is equal to current domain with capital letters if any
$from = domain;
$replyto = 'noreply@'.strtolower(domain);

$headers = "From: $from\r\nReply-To: ".$replyto;
$headers .= "\nMIME-Version: 1.0\nContent-Type: text/html; charset=\"utf-8\"\r\n";

但由于某种原因,当我在邮箱中发送电子邮件时,我收到了来自myusername@myhost.com的电子邮件,这很糟糕。我怎样才能将我的网站名称作为发件人?

2 个答案:

答案 0 :(得分:4)

为了正确解析名称和电子邮件地址,您应该按以下格式提供它们:

'From: Name <email@domain.tld>'

这就像

'From: Marty McVry <marty.mcvry@mydomain.com>'

使用您的示例:

$headers = "From: $from <$replyto>\r\nReply-To: ".$replyto;

提醒一下:我希望您不必使用$domain代替domain ...否则将是一个愚蠢的错字。 : - )

答案 1 :(得分:1)

您可以尝试使用此代码:

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

有关详情,请参阅mail function