包含html内容时,邮件功能会转到垃圾邮件

时间:2016-11-16 12:42:50

标签: php html gmail

在我的脚本中我使用了mail()函数和html内容,如下所示:

$message = " <html> <head> <title>Page Title</title> </head> <body style='direction: rtl;'> <p>Hi $name,</p> <p>some text: $sdesc</p> <p>Some text.</p> <p>some text:</p> <table> <tr> <th style='border: 1px solid black;'>number</th> <th style='border: 1px solid black;'>description</th> <th style='border: 1px solid black;'>price</th> <th style='border: 1px solid black;'>qty</th> <th style='border: 1px solid black;'>total</th> </tr> <tr> <td style='border: 1px solid black;'>$randnum</td> <td style='border: 1px solid black;'>$sdesc</td> <td style='border: 1px solid black;'>$price</td> <td style='border: 1px solid black;'>$qty</td> <td style='border: 1px solid black;'>$total</td> </tr> </table> </body> </html>"

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= 'From: <example@mydomain.net>' . "\r\n";
$to = "myemail@example.com";
$subject = "My Subject";
mail($to,$subject,$message,$headers);

我的消息直接发送到垃圾邮件。

但是当我删除了html代码和标题时,它现在就会进入收件箱。

$to = $breed;
        $subject = "My Subject";
        $message = "
            Hi $name,\r\n
            Some text: $sdesc\r\n
            Some text.\r\n
            Details:\r\n
            number: $randnum \r\n
            description: $sdesc \r\n
            price: $price \r\n
            qty: $qty \r\n
            total: $total \r\n";
        $headers .= 'From:example@example.net' . "\r\n";
        mail($to,$subject,$message,$headers)

但是我需要发送一条html消息并阻止它进入垃圾邮件。

任何想法?

我尝试按照http://uk.php.net/manual/en/function.mail.php中的说明编写代码,并且使用gmail时效果很好。

但仍然是hotmail的问题。

2 个答案:

答案 0 :(得分:0)

尝试更改$headers .= 'From:example@example.net' . "\r\n"; 正常邮件

答案 1 :(得分:0)

我发现您发送的HTML内容存在一些可能的问题。

<html>
   <head>
       <title>Page Title</title>
   </head>

HTML电子邮件的内容被视为文档片段,而不是整个文档。您不需要包含<html><head><body>元素,将其删除可能会提高您的消息的可传递性。

<body style='direction: rtl;'>

请勿在HTML电子邮件中使用direction: rtl。它经常被用来混淆HTML消息的内容。

如果您使用RTL语言(例如希伯来语或阿拉伯语)发送消息,则需要使用变通方法。例如,如果您希望表格标题按从右到左的顺序显示(例如,从右侧的数字到左侧的总计),请按从左到右的顺序包含列。