0

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);
4

3 に答える 3

0

適切な資格情報で Swift Mailer を使用してみてください:)

また、チェックアウト:

于 2011-10-19T06:10:03.403 に答える
0

次の理由によるスパムの問題

1) 共有ホスティング

共有ホスティングを使用している場合、PHP はこの問題の解決策ではありません。サーバー プロバイダーに連絡してみてください。ホストされている IP がスパムとして扱われることがあります。ホスティング プロバイダーを変更してみてください。問題なく動作する可能性があります。

2) メール本文にリンクを追加

3 ) 部分的なヘッダー (常に返信先を使用してください。Ref Ans: TrentonMcManus)

4) 一括メール送信

5) Spam Reporting (あなたのリンクをスパムとしてクリックした人の数)

6) メッセージは短すぎず、長すぎず。

7) ブラックリストに登録された IP (ホスティング、および SMTP サーバー) からの送信 )

あなたのIPアドレスがGoogleやHotmailによって以前にブラックリストに登録されているのは新しいかもしれませんここからサイトからブラックリストに登録されたIPかどうかを確認できます

8)送信者IPの確認

Sender Policy Framework (SPF) は、送信者の IP アドレスを検証することで一般的な脆弱性である電子メールのなりすましを検出することにより、電子メール スパムを防止するように設計された電子メール検証システムです。

おそらくPHPはこれに対する解決策ではありません.PHPコーディングで次のことを行うことができます

1)常に差出人/返信先アドレスを使用する

2) 本文に登録解除リンクを追加

3) スパムキーワードを避ける。

4) 短すぎず、長すぎないメッセージ。

5) テキスト版は HTML より優れている

于 2011-10-19T06:26:55.340 に答える
-1

問題を引き起こす可能性があると私が見ることができることの1つは、次のことです。

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

次のようにする必要があります。

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

このスクリプトから大量の電子メールを送信している場合、CAN SPAM Actに準拠していないと、スパムとしてマークされる可能性があります。あなたのphpとは関係ないかもしれません。

私はそれらを使用したことはありませんが、Send Gridの何人かと話をしたところ、彼らのサービスは電子メールが適切に配信されるようにするのに役立つと主張していました。

于 2011-10-19T06:20:44.613 に答える