【问题标题】:PHP mail won't send when there is a url a tag in the body当正文中有 url 和标签时,PHP 邮件不会发送
【发布时间】:2013-09-16 14:16:24
【问题描述】:
                   <?php
                   // multiple recipients

                     $to = 'ali.dzinemedia@gmail.com';

                       // subject
                   $subject = 'Birthday Reminders for August';

                // message
               $message = '<html>
              <head></head>
                  <body>Content here and <a href="http://www.google.com">this</a> is              a                      link</body>
                 </html>';

               // To send HTML mail, the Content-type header must be set

         // Additional headers
             $headers = 'To: Mary <ali.dzinemedia@gmail.com>' . "\r\n";
             $headers .= 'From: Birthday Reminder <ali.dzinemedia@gmail.com>' . "\r\n";

           $headers  .= 'X-Mailer: PHP/' . phpversion();
           $headers  .= "MIME-Version: 1.0\r\n";
           $headers .= "Content-type: text/html; charset: utf8\r\n";

             echo "To : ".$to;

            // Mail it
            mail($to, $subject, $message, $headers);

              ?>

请解决这个问题。当我在邮件正文中添加下载时,邮件未发送。

如果我删除这个标签邮件,所有其他内容都会按照我的要求显示。

我不知道问题出在哪里,我正在使用带有 PHP 5.3 版本的 godady 托管。

如果有人有更好的解决方案,请与我分享。

【问题讨论】:

  • 您使用的是哪个邮件功能?
  • 请给我们一些代码?
  • 你是不是邮件没有被发送,或者它只是进入垃圾邮件文件夹?

标签: php email


【解决方案1】:

我已经稍微调整了您的代码。主要变化在 From: header - $header = "From: \"HCS Support Team\" &lt;$from_id&gt;\r\n" . "Reply-To: $from_id\r\n";

$erm.= '<TR>
            <TD WIDTH="50%">' . "Download-" . $j . '</TD>
            <TD WIDTH="50%"><a href="http://xyz.com' . $path . '">Download</a></TD>
        </TR>';


$from_id = "support@xyz.com";
$header = "From: \"HCS Support Team\" <$from_id>\r\n" . "Reply-To: $from_id\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$header .= 'MIME-Version: 1.0' . "\r\n";
$header .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$subject = "Request for Case Study Solution Received";
@mail("ali.dzinemedia@gmail.com", $subject, $erm, $header);

似乎邮件正在发送,但它直接进入 SPAM 文件夹。请阅读使邮件进入垃圾邮件文件夹的垃圾邮件规则:http://spamassassin.apache.org/tests_3_3_x.html

在您的情况下,gmail 的主要问题可能是它是使用标准 PHP 邮件功能发送的。请尝试PHPMailerPEAR::Mail

spamassasin 在您的邮件中遵守的规则是:

  • HTML_MESSAGE
  • HTML_MIME_NO_HTML_TAG
  • MIME_HTML_ONLY

【讨论】:

  • 是的,我确定邮件没有发送。如果我删除一个 href www.xyz.com 然后邮件发送
  • 然后从函数邮件之前删除“@”并查找任何错误。您也可以将邮件返回保存到某个变量并检查结果。示例:$result = mail("ali.dzinemedia@gmail.com", $subject, $erm, $header); echo $result; 请告诉我们结果是什么,是否有任何错误或警告。
  • 是的,这意味着邮件已发送。您确定它不在垃圾邮件文件夹中吗?
  • 是的,确定邮件已发送,但没有进入垃圾邮件文件夹或收件箱……我不知道问题出在哪里。如果我从邮件正文中删除 xyz.com' . $path . '">Download 行,一切正常。现在邮件脚本不选择www。或来自邮件正文的 href 虽然我已经设置了内容类型:html/text 已经设置
  • 你确定你的代码和我的一模一样吗?因为在您刚刚复制的行中有一个语法错误 - 它应该是 &lt;TD WIDTH="50%"&gt;&lt;a href="xyz.com' . $path . '"&gt;Download&lt;/a&gt;&lt;/TD&gt; 让我们看看您的 $path 变量
猜你喜欢
  • 2018-05-12
  • 2020-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-12
  • 1970-01-01
  • 2013-02-20
  • 2020-06-12
相关资源
最近更新 更多