PHP-电子邮件被标记为垃圾邮件

PHP-电子邮件被标记为垃圾邮件,php,Php,可能重复: 我正在使用下面的代码通过PHP发送一封带有附件的电子邮件。(只有一个中等大小的图像和一个小的描述,没有任何垃圾邮件内容) 问题是一些服务将电子邮件标记为垃圾邮件或完全拒绝它 我是PHP新手,在这里找到了这段代码。标题是否有问题,或者是什么原因导致了这种情况 <?php $file = $_POST["thefile"]; $text_message = $_POST["themessage"];

可能重复:

我正在使用下面的代码通过PHP发送一封带有附件的电子邮件。(只有一个中等大小的图像和一个小的描述,没有任何垃圾邮件内容)

问题是一些服务将电子邮件标记为垃圾邮件或完全拒绝它

我是PHP新手,在这里找到了这段代码。标题是否有问题,或者是什么原因导致了这种情况

<?php
    $file         = $_POST["thefile"];         
        $text_message = $_POST["themessage"];       
        $subject      = $_POST["thesubject"];        
        $from         = $_POST["thesender"];        
        $to           = $_POST["theaddress"];                 

          $attachment=uniqid(rand(), true) . '.png';

       $headers="From: $from\r\n";
        $headers.="Reply-to: $from\r\n";
        $headers.="Return-Path: $from\r\n";

    if (isset($_ENV["SERVER_NAME"])) 
        $headers.="Message-Id: <" . md5(uniqid(microtime())) . "@" . $_ENV["SERVER_NAME"] . ">\r\n";
    else
        $headers.="Message-Id: <" . md5(uniqid(microtime())) . "@" . 'unknown' . ">\r\n";
    $headers.="Date: " . date("r") . "\r\n";
    $headers.="X-Mailer: PHP\r\n";
    if (isset($_ENV["REMOTE_ADDR"])) 
        $headers.="X-SenderIP: " . $_ENV["REMOTE_ADDR"] . "\r\n";
    else
        $headers.="X-SenderIP: " . 'unknown' . "\r\n";
    if (isset($_ENV["SERVER_NAME"])) 
        $headers.="X-WebSite: " . $_ENV["SERVER_NAME"] . "\r\n";
    else
        $headers.="X-WebSite: " . 'unknown' . "\r\n";
    $headers.="X-Script: SWF_Generator\r\n";
    $bound_text=md5(uniqid(time()));

        $headers.="MIME-Version: 1.0\r\n" . "Content-Type: multipart/mixed; boundary=\"PHP-mixed-$bound_text\"\r\n";
        $message="--PHP-mixed-$bound_text\r\n"      
                ."Content-Type: text/html; charset=\"utf-8\"\r\n"
                ."Content-Transfer-Encoding: 7bit\r\n\r\n"  
                ."<html><head></head><body>"
                ."<div style=\"font-family: Arial, Helvetica, sans-serif; font-size : 1.3em; color: #000000;width: 100%;text-align: left;\">$text_message</div></body></html>\r\n\r\n"  
                ."--PHP-mixed-$bound_text\r\n"  
                ."Content-Transfer-Encoding: base64\r\n"
                ."Content-Disposition: attachment; filename=\"$attachment\"\r\n"
                ."Content-Type: image/png; name=\"$attachment\"\r\n\r\n"
        .chunk_split($file)
        ."\r\n\r\n"
                ."--PHP-mixed-$bound_text--\r\n\r\n";

  mail($to,$subject,$message,$headers);
}
?>


谢谢。

使用PHP发送电子邮件并不像调用mail()函数那么简单

我建议您使用一个有效的SMTP服务器(例如gmail服务器)和一个现成的php组件/类,如


对于99%的情况来说,这应该足够了。

通过信誉良好的电子邮件服务器发送,如您的gmail帐户……可能是Baba所说的内容的副本。电子邮件是否进入您的垃圾邮件文件夹取决于接收电子邮件的提供商,而不是谁发送的。发送的邮件头是什么?可能某些标头的
未知
值会触发来自接收器和/或邮件服务器的垃圾邮件过滤器。您在哪里找到该代码?