【问题标题】:not sending email in php with header from email id不在 php 中发送带有来自电子邮件 ID 的标头的电子邮件
【发布时间】:2013-04-18 04:13:03
【问题描述】:

我将以下代码与 HTML 一起用于标题。

$email="example@example.com";在示例中,我想在其位置实现变量。 代码如下所示,但既不显示错误也不发送电子邮件。

我已经尝试了以下链接PHP email form not sending informationPHP Sending Emails with File Attachments - Email Not Sending At All

我试过了

$headers .= "From: <".$email.">\n";

$headers .= $email;

这会在标签电子邮件中的标头中显示$email。

但它工作正常,直到这一行:

$headers .= 'From: ' .$email. "\r\n";

如果我删除此行,上面的行不会发送电子邮件,但它不会将 From email id 添加到标题。

请帮帮我,它没有显示任何错误,我已经尝试了上述代码的许多变体,但仍然难倒。

<?php

$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$phone = $_REQUEST['contact'];

$subject = "feedback";
$question = $_REQUEST['question'];


$body = "<html>
<head>

</html>";
$mime_boundary = "<<<--==+X[".md5(time())."]\r\n\r\n";
$headers = "MIME-Version: 1.0"."\r\n" ."Content-Type:text/html;"."\r\n";
$headers .= 'From:'.$email. "\r\n";


$to ='example@example.com';
mail($to,$subject,$body,$headers);
echo "<script>alert(' message  sent.');</script>";

?>

【问题讨论】:

  • 能否请您添加其余代码?
  • 添加的代码请不要对这个问题投反对票。
  • 所以除了在标题中添加“发件人”行的部分之外,一切正常吗?如果该行存在,则不会发送电子邮件;但如果你把它注释掉,它会吗?在这种情况下 - 您要添加什么作为电子邮件?你说它不发送电子邮件是什么意思 - SMTP 日志中有错误吗?还是一切看起来都正常,但电子邮件从未到达?
  • 在您的问题中,您的行格式为“发件人:$email” - 在您发布的代码中,冒号和电子邮件地址之间没有空格。这可能是个问题。
  • 另外,我不确定Content-type:text\html; 是否需要尾随分号。基本上 - 你可以将$headers 分成三个部分,然后尝试注释掉每个部分,看看其他行是否有问题?

标签: php


【解决方案1】:

如果你使用标准的mail 函数,那么试试这个(不要将“From”头添加到$headers):

mail($to,$subject,$message,$headers,"-f ".$email);

【讨论】:

  • 试过你的解决方案还是不行。我已经添加了上面的代码。请不要对我的问题投反对票。
【解决方案2】:

我在处理的其中一台服务器上遇到了同样的问题。显然在我的服务器中,不指定“发件人”标头从您帐户的默认邮件地址发送电子邮件(如果是共享主机)。我选择了这个解决方案作为临时修复,并在“回复”标题中指定了我的实际发件人地址。这样,我仍然可以收到发送到这些电子邮件线程的回复。

这种方法似乎只适用于功能性电子邮件地址(例如,support@example.com)。如果您将这种方法用于用户的电子邮件地址(例如 john@example.com),那么收件人可能会将您的电子邮件视为垃圾邮件。

【讨论】:

    猜你喜欢
    • 2017-03-04
    • 2017-08-22
    • 2012-06-15
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 2014-05-30
    相关资源
    最近更新 更多