私はバイヤーが売り手にメールを送るために記入するPHPメールフォームを持っています。私のlocalhost MAMPサーバーでテストしていることを除いて、すべてうまく動作します。電子メール本文に "localhost"という単語を送信しようとするとPHPメールが壊れる - とても変わった
問題:$ message1(電子メール本文)は$ _POST ['textarea']に由来しています。フォームテキストエリア(電子メール本文に配置された)を介して送信されたURL「http:// localhost」がある場合、ダングメールは決して配信されません。 http://www.anythingelse.comはうまくいきます....私はかなり困惑しています。フォームを通じて送信されるローカルホストのURLを無効にするいくつかの安全機能はありますか?
私のコードに他の目障りなエラーがある場合、どんな助けもありがとうございます。
よろしく、 ダニエル
public function saleRequest($seller_email, $seller_username, $buyer_email, $buyer_username, $book_title, $subject1, $message1) {
define("NAME","xxxxxxx");
define("FROM",$buyer_email);
$subject = substr_replace($subject1, '', 30);
// -=-=-=-=- MAIL HEADERS
$mime_boundary = md5(time());
$headers = "From: ".NAME." <".FROM.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$mime_boundary\";\n\n";
// -=-=-=-=- TEXT EMAIL PART
$message = "--$mime_boundary\n";
$message .= "Content-Type: text/plain; charset=UTF-8\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message .= wordwrap(stripslashes($message1), 30, PHP_EOL)."\n";
// -=-=-=-=- HTML EMAIL PART
$message .= "--$mime_boundary\n";
$message .= "Content-Type: text/html; charset=UTF-8\n";
$message .= "Content-Transfer-Encoding: 8bit\n\n";
$message1 = $message1."this is html";
$message .= nl2br(wordwrap(stripslashes($message1), 30, "<br>"))."<br>\n";
// -=-=-=-=- FINAL BOUNDARY
$message .= "--$mime_boundary--\n\n";
unset($mime_boundary);
return mail($seller_email,$subject,$message,$headers);
}
メールが配信されない理由について、メールサーバーのログに何かが表示されていますか?あるいは、あなたはsuhosinのようなものを持っていて、それはフォームデータのURLフィルタリングをしていますか?また、自分のMIMEメールを作成しないでください。 PHPMailerやSwiftmailerを使用する方がはるかに簡単で、重い作業をさせることができます。 –