当我使用这个PHP邮件功能时,为什么我的Gmail或雅虎电子邮件帐户不接收邮件

时间:2012-09-28 04:18:58

标签: php gmail mime

带有标题的send_mail函数。什么可以阻止这被收到。我知道它至少有时起作用,我的工作电子邮件收到它就好了。

另一件可能值得注意的事情是: - 使用不同的ssl页面,该功能确实正确发送到gmail - 在这个完全独立的领域,它不是。

function send_mail($from,$fromName,$to,$object,$bodyText,$bodyHtml){
    $site = "mywebsite.ca";
    $from = $fromName." <".$from.">";
    $limite = "_----------=_parties_".md5(uniqid (rand()));

    $header  = "Reply-to: ".$from."\n";
    $header .= "From: ".$from."\n";
    $header .= "X-Sender: <".$site.">\n";
    $header .= "X-Mailer: PHP\n";
    $header .= "X-auth-smtp-user: ".$from." \n";    
    $header .= "X-abuse-contact: ".$from." \n"; 
    $header .= "Date: ".date("D, j M Y G:i:s O")."\n";
    $header .= "MIME-Version: 1.0\n";
    $header .= "Content-Type: multipart/alternative; boundary=\"".$limite."\"";

    $message = "";
    $message .= "--".$limite."\n";
    $message .= "Content-Type: text/plain\n";
    $message .= "charset=\"iso-8859-1\"\n";
    $message .= "Content-Transfer-Encoding: 8bit\n\n";
    $message .= $bodyText;

    $message .= "\n\n--".$limite."\n";
    $message .= "Content-Type: text/html; ";
    $message .= "charset=\"iso-8859-1\"; ";
    $message .= "Content-Transfer-Encoding: 8bit;\n\n";
    $message .= $bodyHtml;

    $message .= "\n--".$limite."--";
    if(mail($to, $object, $message, $header)) return true;
    else return false;
}

2 个答案:

答案 0 :(得分:0)

为什么要将TextHTML内容类型合并到同一个变量中?

$message = "";
$message .= "--".$limite."\n";
$message .= "Content-Type: text/plain\n";
$message .= "charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= $bodyText;

$message .= "\n\n--".$limite."\n";
$message .= "Content-Type: text/html; ";
$message .= "charset=\"iso-8859-1\"; ";
$message .= "Content-Transfer-Encoding: 8bit;\n\n";
$message .= $bodyHtml;

仅使用其中任何一个

喜欢而不是上面的

$message .= "\n\n--".$limite."\n";
$message .= "Content-Type: text/html; ";
$message .= "charset=\"iso-8859-1\"; ";
$message .= "Content-Transfer-Encoding: 8bit;\n\n";
$message .= $bodyHtml;

答案 1 :(得分:0)

 if(mail($to, $object, $message, $header)) return true;
    else return false;

继承人将发送邮件的代码发送到您的电子邮件尝试将其调整为特别是$ to varible中的所有变量,因为它是您发送邮件的电子邮件。

试试这个

if(mail($to,$object,$message,$header)){
      //echo all
}
else{
      //echo mssage not submit
}