通过PHP发送的HTML电子邮件在Gmail中被视为垃圾邮件

时间:2013-07-19 14:31:34

标签: php gmail html-email email-headers

我有以下php脚本,它从我的服务器上的.txt文件加载html模板,并使用str_replace在发送电子邮件之前使用电子邮件内容填充模板。

首先,我尝试将服务器上的Webmail地址硬编码到mailer_send函数的“to”字段中,该字段运行正常。电子邮件模板显示完美。但是,当我尝试将其发送到Gmail帐户时,它被标记为垃圾,HTML只显示为纯文本。有没有人知道我是否需要在电子邮件中包含任何其他标题以确保Gmail正确处理它?<​​/ p>

理想情况下,我想通过我的服务器上的webmail向自己发送电子邮件,然后向用户发送自动回复,感谢他们的查询,但如果邮件始终被视为垃圾邮件,则无法进行此操作。

<?php
    function mailer_send($mailer_recipient, $mailer_subject, $mailer_message){
         $mailer_headers = 'From: webmaster@example' . '\r\n' .
        'X-Mailer: PHP/' . phpversion() . '\r\n' .
        'MIME-Version: 1.0\r\n' . '\r\n' . 
        'Content-Type: text/html; charset=ISO-8859-1\r\n';
         mail($mailer_recipient, $mailer_subject, $mailer_message, $mailer_headers);
     }

$name = $_POST['inputName'];
$email = $_POST['inputEmail'];
$message = strip_tags($_POST['inputMessage']);
$template = file_get_contents('email_templates/template.txt');
$template2 = $template;
$template = str_replace('[email_content]',$message, $template);

    mailer_send('test@gmail.com','Test Email',$template);

$message2 = '<h2>Thanks..</h2><br/><p>Dear' . $name . '</p><br/><p>Thanks for your enquiry. Jason will get back to you with a quote as soon as possible.</p>';
$template2 = str_replace('[email_content]', $message2, $template2);
mailer_send($email,'Thankyou for your Enquiry',$template2);
  ?>

提前致谢。

其他:

当在Gmail中收到电子邮件时,它似乎忽略了From标头,只是说电子邮件来自我的网络托管服务提供商服务器。

1 个答案:

答案 0 :(得分:3)

有很多原因导致gmail怀疑该邮件是垃圾邮件。

我要做的第一件事是使用一个正确处理标题的库 - &gt; http://swiftmailer.org/

其次,确保您的发件人主机来自与服务器相同的IP并具有正确的MX记录。