2011-07-25 5 views
0

送信時にクライアントに電子メールで送信される単純なフォームの投稿があります。クライアントはメールで送信されたフォームのコンテンツを受信して​​いません

彼らはメールでフォームを受信して​​いません。ドメインの誰もがコンテンツを受け取らず、スパムフィルタをチェックしているため、スパムの問題ではないようです。

さまざまなメールサーバーとドメインのメールアドレスにコンテンツを送信すると、私はいつもそのメールを受信します。

私はホストのサポート(mediaTemple)に電話をかけ、ウェブサイトでメールサービスが有効になっていてメールが別のマシン(Google)によって処理されていたという問題を直ちに考えました。 mediaTemple Pleskコントロールパネルでメールサービスを利用できます。クライアントはまだメールを受信して​​いません。助言がありますか?

私はフィールドの束を省略さましたが、あなたのすべては、PHPのアイデアを得ることができますちょうどので:メール機能に障害が発生した場合に

$to = "[email protected], [email protected]"; 
$subject = "Web Site Feedback"; 

$first_name = $_POST['first_name']; 
$last_name = $_POST['last_name']; 
$date_of_visit = $_POST['date_of_visit']; 
$first_visit = $_POST['first_visit']; 

$body = "From: $first_name $last_name\n Date of Visit: $date_of_visit\n First Visit: $first_visit\n"; 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/plain; charset=UTF-8' . "\r\n"; 
$headers .= 'From: Client Name <[email protected]>'. "\r\n"; 
$headers .= "Reply-To: " . "<[email protected]>\r\n"; 
$headers .= "Return-path: [email protected]"; 

mail($to, $subject, $body, $headers) 
+0

代替テキストなしのHTML本文ですか?さて、それは多くのスパムフィルタで高いスコアに向かって跳ね返ります。 – Quentin

+0

"Content-type:text/html; charset = UTF-8"という行のためですか?それはすべてのテキストです。私はその行を変更する必要がありますか?正直言って、ちょうど最近、ヘッダーの追加が追加されました。コンテンツタイプが定義される前でも表示されませんでした。 – Keefer

+0

HTML形式の電子メールを送信する場合は、プレーンテキストの代替案を含むマルチパートMIMEメールを送信してください。そうする場合は、MIMEルーチンを作成するのではなく、適切なライブラリを入手してください。 – Quentin

答えて

1

チェックを...

if (!mail($to, $subject, $body, $headers)) { 
    echo "Failed to send email..."; 
} 

自分のメールアドレスではない別のメールアドレスに送信すると、それは間違いなくスパムの問題です。

メールサーバーでSPFレコードを設定してスパムでないことを確認し、DKIM(PHPMailerのDKIMサポートが有効)の使用を検討することもできます。

+0

それは間違いなく、そのボックスでホストされているWebサイトではない電子メールには有効です。彼らは、そのmtボックスでホストされている4つのWebサイトのようなものを持っていて、これらの電子メールのどれもがフォームの内容を受け取っていません。私が追加する他の電子メールはそれらを得る。 – Keefer

+0

私が言ったように、それは間違いなくスパムの問題です。あなたは、電子メールをもっと本物に見えるようにする方法、例えばSPFレコードを使って受信側のサーバーに送信側のサーバーがそのIPからメールを送信する権限を与えられていることを伝える方法を検討する必要があります。 – fire

関連する問題