Gmail和Hotmail的PHP垃圾邮件问题

Gmail和Hotmail的PHP垃圾邮件问题,php,gmail,hotmail,email-spam,Php,Gmail,Hotmail,Email Spam,我在gMail和Hotmail中的以下代码中遇到了一些疯狂的垃圾邮件问题。。从PHP的角度看,我有没有做错什么 function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) { $file = $path.$filename; $file_size = filesize($file); $handle = fopen($file, "r"); $c

我在gMail和Hotmail中的以下代码中遇到了一些疯狂的垃圾邮件问题。。从PHP的角度看,我有没有做错什么

function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {
$file = $path.$filename;
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$name = basename($file);
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "Reply-To: ".$replyto."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use different content types here
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$header .= $content."\r\n\r\n";
$header .= "--".$uid."--";
if (mail($mailto, $subject, "", $header)) {
    echo "mail send ... OK"; // or use booleans here
} else {
    echo "mail send ... ERROR!";
}
} 
$my_file = "f92ffc796f.jpg";
$my_path = $_SERVER['DOCUMENT_ROOT']."/resources/template/uploads/";
$my_name = "BB Avatar";
$my_mail = "someone@somehwerecom";
$my_replyto = "someone@somehwerecom";
$my_subject = "This is a mail with attachment.";
$my_message = "Hallo,\r\ndo Your download is attached.\r\n\r\";
mail_attachment($my_file, $my_path, $_REQUEST['email'], $my_mail, $my_name, $my_replyto, $my_subject, $my_message);
function mail_附件($filename、$path、$mailto、$from_mail、$from_name、$replyto、$subject、$message){
$file=$path.$filename;
$file\u size=文件大小($file);
$handle=fopen($file,“r”);
$content=fread($handle,$file\u size);
fclose($handle);
$content=chunk_split(base64_encode($content));
$uid=md5(uniqid(time());
$name=basename($file);
$header=“From:”.$From\u name.\r\n”;
$header.=“回复:”.$replyto.\r\n”;
$header.=“MIME版本:1.0\r\n”;
$header.=“内容类型:多部分/混合;边界=\”.$uid.\“\r\n\r\n”;
$header.=“这是MIME格式的多部分消息。\r\n”;
$header.=“-”$uid.\r\n”;
$header.=“内容类型:文本/普通;字符集=iso-8859-1\r\n”;
$header.=“内容传输编码:7bit\r\n\r\n”;
$header.=$message.“\r\n\r\n”;
$header.=“-”$uid.\r\n”;
$header.=“内容类型:应用程序/八位字节流;名称=\”.$filename.\“\r\n”;//在此处使用不同的内容类型
$header.=“内容传输编码:base64\r\n”;
$header.=“内容处置:附件;文件名=\”.$filename.\“\r\n\r\n”;
$header.=$content.“\r\n\r\n”;
$header.=“--”$uid.--”;
if(邮件($mailto,$subject,“,$header)){
回显“邮件发送…确定”;//或在此处使用布尔值
}否则{
回显“邮件发送…错误!”;
}
} 
$my_file=“f92ffc796f.jpg”;
$my_path=$_SERVER['DOCUMENT_ROOT']。“/resources/template/uploads/”;
$my_name=“BB Avatar”;
$my_mail=”someone@somehwerecom";
$my_replyto=”someone@somehwerecom";
$my_subject=“这是一封带有附件的邮件。”;
$my_message=“您好,\r\n您的下载已附加。\r\n\r\”;
邮件附件($我的文件,$我的路径,$我的请求['email'],$我的邮件,$我的姓名,$我的回复,$我的主题,$我的邮件);

另外,请查看:


    • 我可以看出,会给您带来问题的一件事是:

      $my_mail = "someone@somehwerecom";
      $my_replyto = "someone@somehwerecom";
      
      应该是:

      $my_mail = "someone@somehwere.com";
      $my_replyto = "someone@somehwere.com";
      
      如果您通过此脚本发送大量电子邮件,如果您不遵守此脚本,则可能会被标记为垃圾邮件。它可能与您的php无关


      我没有使用过它们,但我与来自的一些人交谈过,他们声称他们的服务可以帮助确保电子邮件正确发送。

      垃圾邮件问题的原因如下

      1) 共享主机

      如果您使用的是共享主机,PHP不是解决此问题的方法。请尝试与服务器提供商联系。有时,您的托管IP会被视为垃圾邮件。请尝试更改主机提供商,这样可能会很好

      2) 电子邮件正文中的更多链接

      3)部分标题(始终使用回复,参考Ans:TrentonMcManus)

      4) 批量电子邮件

      5) 垃圾邮件报告(作为垃圾邮件单击您的链接的人数)

      6) 信息不要太短或太长

      7) 从列入黑名单的IP(主机和SMTP服务器)发送

      这可能是新的您的IP地址已被谷歌或Hotmail列入黑名单 您可以从以下站点检查黑名单ip或不检查黑名单ip:

      8) 验证发送方IP

      发件人策略框架(SPF)是一个电子邮件验证系统,旨在通过验证发件人IP地址来检测电子邮件欺骗(一种常见漏洞),从而防止电子邮件垃圾邮件

      也许PHP并不能解决这个问题。您可以在PHP中编写以下代码

      1) 始终使用发件人/回复地址

      2) 在正文中添加取消订阅链接

      3) 避免垃圾邮件关键字

      4) 信息不要太短或太长


      5) 文本版本比HTML好,你说的“垃圾邮件问题”是什么意思?主要的电子邮件提供商将邮件标记为垃圾邮件?谢谢,但这只是一个输入错误,我将实际的电子邮件地址替换为假地址。也许我是盲人,但这两组变量看起来和我一样。谢谢,服务器是一个MT(dv)服务器,我也测试过通过SMTP(通过phpMailer)发送邮件,但仍然没有成功。无论如何,谢谢。在PHPMailer类中,您使用哪种方法(“邮件”、“sendmail”或“smtp”)发送电子邮件?我以前也遇到过同样的问题。请尝试直接在您的Web邮件帐户中发送。该邮件也可能会成为垃圾邮件。请尝试与我联系。