[英]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.