这是我的邮件功能的副本
$to = 'account@gmail.com';
$subject = 'The subject';
$message = 'Hello,'."\n";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers = 'From: me@mycompnay.com' . "\r\n" .
'CC: anotherone@mycompany.com' . "\r\n";
$mail_sent = mail($to, $subject, $message, $headers);
if($mail_sent) {
header("location:newlocation.php");
}
}
答案 0 :(得分:2)
很多时候,这与PHP的mail()功能关系不大,而且与邮件传输代理的配置有很大关系。许多邮件服务器会在它们传递给垃圾邮件过滤器之前弹出他们认为来自垃圾邮件发送者(即未配置/配置错误的发件人)的邮件。
如果您查看MTA的日志,您可能会发现一些反弹消息,例如“不允许来自此服务器的邮件,请参阅[插入网址]的黑名单信息。
答案 1 :(得分:1)
垃圾邮件过滤器使用许多不同的方法来确定进来的邮件是否真的是垃圾邮件。
以下是我建议的一些事项:
尝试尝试使用不同的组合,看看是否可以通过您的工作。好消息是你的谷歌帐户收到了电子邮件,所以你知道它不是本地的服务器端问题。
答案 2 :(得分:1)
您可能需要正确格式化标题和内容。边界不见了。
这是HTML格式化邮件的一个简单功能:
<?php
function html_mail($i){
$to = $i['to'];
$to_name = $i['to-name'];
$subject = $i['subject'];
$html_message = $i['message'];
$from = $i['from'];
$from_name = $i['from-name'];
$reply_to = $i['reply-to'];
$reply_to_name = $i['reply-to-name'];
if(!$to || !validate::email($to)){return false;}
$email_message = '';
$email_subject = $subject;$email_txt = $html_message;
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$email_to = ($to_name ? $to_name.'<'.$to.'>':$to);
$headers = "From: ".($from_name!='' ? $from_name.'<'.$from.'>':$from)."\n";
if($reply_to){
$headers .= "Reply-To: ".($reply_to_name ? $reply_to_name.'<'.$reply_to.'>':$reply_to)."\n";
}
$headers .= "MIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;" .
" boundary=\"{$mime_boundary}\"";
$email_message .= "This is a multi-part message in MIME format.\n\n";
$email_message .= "--{$mime_boundary}\n";
$email_message .= "Content-Type: text/html; charset=utf-8\n";
$email_message .= "Content-Transfer-Encoding: 8bit\n\n";
$email_message .= $email_txt;
$email_message .= "\n\n";
$email_message .= "--{$mime_boundary}\n";
$email_message .= "Content-Type: text/plain; charset=utf-8\n";
$email_message .= "Content-Transfer-Encoding: 8bit\n\n";
$email_message .= trim(strip_tags(str_replace(array('<br/>','<br />','<br/>'),"\r\n",$email_txt)));
$email_message .= "\n\n";
$email_message .= "--{$mime_boundary}--";
$ok = @mail($email_to, $email_subject, $email_message, $headers);
return $ok;
}
?>
如果邮件格式正确,您可能会通过过滤器。
答案 3 :(得分:0)
垃圾邮件的确定完全取决于运行垃圾邮件启发式的软件。您必须查看贵公司使用的反垃圾邮件软件,并了解它被捕获为垃圾邮件的原因。通常情况下,它与您的邮件服务器设置有关。许多软件使用的关键因素是有效的反向DNS条目,因此您可以查看它。
你必须意识到,如果反垃圾邮件软件只是通过修改一些标题就可以轻松地将你的电子邮件视为垃圾邮件,那么反垃圾邮件软件将完全没用,因为垃圾邮件发送者也会知道这些方法
答案 4 :(得分:0)
我认为首先要添加一个有效的'from'标题。
答案 5 :(得分:0)