繁体   English   中英

Gmail和Hotmail的PHP垃圾邮件问题

[英]PHP spam issues with Gmail and Hotmail

使用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);

由于以下原因导致的垃圾邮件问题

1)共享主机

如果您使用共享托管,则PHP不能解决此问题。请尝试与服务器提供商联系。有时您的托管IP被视为垃圾邮件。尝试更改托管提供商,它可能会正常工作。

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

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

4)批量电子邮件

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

6)消息不要太短或太长。

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

这可能是新的,您的IP地址先前已被Google或Hotmail列入黑名单。您可以从此处从该站点检查是否将IP地址列入黑名单

8)验证发件人IP

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

也许PHP不能解决这个问题。您可以在php编码中进行以下操作

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

2)在正文中添加退订链接

3)避免使用垃圾邮件关键字。

4)消息不要太短或太长。

5)文本版本比HTML更好

我可以看到的一件事会导致您出现问题:

$my_mail = "someone@somehwerecom";
$my_replyto = "someone@somehwerecom";

应该:

$my_mail = "someone@somehwere.com";
$my_replyto = "someone@somehwere.com";

如果您通过此脚本发送大量电子邮件,则如果您不遵守CAN SPAM Act ,则可能会被标记为SPAM。 它可能与您的php无关。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM