簡體   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