在我的脚本中我使用了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的问题。
答案 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语言(例如希伯来语或阿拉伯语)发送消息,则需要使用变通方法。例如,如果您希望表格标题按从右到左的顺序显示(例如,从右侧的数字到左侧的总计),请按从左到右的顺序包含列。