【问题标题】:Additional header problems with php function mail with a particular server带有特定服务器的 php 函数邮件的附加标头问题
【发布时间】:2011-02-18 21:44:06
【问题描述】:

我在php中有一个电子邮件功能:

function send_mail($to, $from, $objet, $message) {
$entetemail  = 'MIME-Version: 1.0' . "\r\n";  
$entetemail .= 'Content-type: text/plain; charset=UTF-8' . "\r\n";  
$entetemail .= 'From: '.$from. "\r\n";  
$entetemail .= 'Cc: ' . "\r\n";  
$entetemail .= 'Bcc: ' . "\r\n";  
$entetemail .= 'Reply-To: '.$from .''. "\r\n";  
$entetemail .= 'X-Mailer: PHP/' . phpversion() . "\r\n" ;  
$entetemail .= 'Date: '. date("D, j M Y H:i:s -0600");  
return mail($to, $objet, $message, $entetemail);  
}

$to 是一个有效的电子邮件地址。 $from 看起来像:

Firstname name <email@example.com>

$objet 和 $message 分别来自输入文本和文本区域。

我没有遇到任何 PHP 错误,邮件给我发假消息。

回显后,我的标头在两个服务器上看起来像:

MIME-Version: 1.0
Content-type: text/plain; charset=UTF-8
From: Firstname Name 
Cc: 
Bcc: 
Reply-To: Firstname Name 
X-Mailer: PHP/4.4.9
Date: Fri, 18 Feb 2011 23:35:58 -0600

在我的本地服务器上一切正常。但是在生产中,由于 $from 变量,From 行给出了一个问题。电子邮件将不会发送。 我做错了什么吗?是否存在破坏一切的服务器配置?

【问题讨论】:

  • 您可能需要发布更多代码,以便我们了解发生了什么。具体来说,创建$variables 的部分。
  • 在您调用 mail() 之前执行&lt;pre&gt;&lt;?php echo $entetemail; ?&gt;&lt;/pre&gt; 并发布您对 localhost 和您的生产的内容。 $from 变量很可能是错误的。另外,发布任何 PHP 给你的错误。
  • 你传递了什么作为 $from 的值?两台不同机器上的邮件服务有什么区别吗?邮件日志告诉你什么?你从 mail() 得到什么返回值?我还建议删除您不使用的标头,例如抄送和密送。
  • 我根据您的要求编辑了我的帖子。我认为这不会有任何帮助。我真的认为它专门来自服务器。

标签: php email-headers


【解决方案1】:

它确实有效。

我刚刚使用虚假电子邮件地址进行了所有测试。似乎生产服务器不喜欢它,但我的本地人不在乎。

我想知道怎么做,但我稍后会看到。

【讨论】:

  • 既然您已经回答了自己的问题,您可以接受您自己的答案,这样问题就会关闭。
猜你喜欢
  • 2015-11-29
  • 2014-08-29
  • 2020-06-02
  • 2011-08-25
  • 2012-09-14
  • 2014-03-08
  • 1970-01-01
  • 1970-01-01
  • 2012-09-27
相关资源
最近更新 更多