2013-09-29 98 views
0

PHP sendmail的头我在梅勒类工作不正常

// domain is equal to current domain with capital letters if any 
$from = domain; 
$replyto = '[email protected]'.strtolower(domain); 

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

但由于某些原因,当我在我的邮箱发送电子邮件以下标题我收到一封电子邮件,从[email protected]其中是可怕的。我如何才能将我的网站名称作为发件人?

+0

是否有一个具体的理由,为什么你有时会使用'\ r \两个头之间N'有时候只是'\ n'? – TheWolf

+0

许多不同的设置可以影响邮件标题。最微不足道的是邮件服务器的配置。您可以尝试使用邮件unix cli发送邮件来验证邮件头发生了什么。 (这只是调试的第一步。)或者可能在localhost中使用telnet。否则使用phpmailer可能是一个好主意。 但可能你的服务器MTA强制不需要的邮件地址。 –

+0

你用php的mail()函数吗?手动构建标题可能会很痛苦,我迁移到了http://pear.php.net/manual/de/package.mail.mail.php,这很容易处理。 – jotaen

回答

4

为了正确解析姓名和电子邮件地址,你应该为他们提供的格式如下:

'From: Name <[email protected]>' 

所以这会是这样的

'From: Marty McVry <[email protected]>' 

使用你的例子:

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

只是提醒一下:我希望你不必使用$domain而不是domain ...否则会是一个愚蠢的错字。 :-)

+0

超棒的东西!谢谢你先生。 McVry。 –