2016-07-25 14 views
2
私は基本的なスクリプトを使用してい

を送信しない:すべてのメールを受信して​​いないPHPのメール() '関数は、1台の& 1ホストされたサーバー上にメール

$recipient = "[email protected]"; 
$sender_name = $_POST['name']; 
$sender_email = $_POST['email']; 
$subject = $_POST['subject']; 
$message = $_POST['message']; 

$headers = "MIME-Version: 1.0"."\r\n"; 
$headers .= "Content-type:text/html; charset=UTF-8"."\r\n"; 
$headers .= "From: {$sender_name} <{$sender_email}>"."\r\n"; 
$headers .= "Reply-to: {$sender_name} <{$sender_email}>"."\r\n"; 

mail($recipient, $subject, $message, $headers); 

..but何らかの理由で、また任意のエラーPHP mail() function not sending emailに従ってください。

これはサーバーの問題だと思っていましたが、完全にサポートされている1&1 statesです。私はまた、受信者、件名、本文を使用する前に、このサーバー/ホスティングから電子メールを送ってきました。なぜ、それが現在動作していないのかが分かりません。

UPDATEヘッダ、すなわちせずに送信

mail($recipient, $subject, $message); 

..doesは動作しますので、ヘッダーを使用して問題のように見えるでしょうか?

+0

は、あなたの 'smtp'と' pop'サーバが設定されていますか? –

+0

@MridulKashyap私は知らなかったが、私が言ったように、それは私がそれらを設定することなく前に働いていた –

+0

mail()関数は何を返しますか?正しいか間違っているか? –

答えて

3

多くの理由が考えられます。たとえば、SPFが何であるかを調べる必要があります。

$ sender_emailにはアドレスは使用できません。たとえば、Gmailアドレスを入力してその送信者であることを主張する電子メールを送信することはできません。認証なしでそのアドレスに代わって電子メールを送信することはできません私はあなたの住所をfromに入れて電子メールを送ることができるので、私がいないときにあなたの前にいます。(単純な言葉を使ってみました)

あなたは@ yourdomain.com、サーバーのIPがそのドメインの電子メールを送信できるようにSPFを設定します。それ以外の場合はSMTP経由で電子メールを送信します(例えば、PHPmailerを使用すると非常に簡単です)

+0

これはインフォメーションのために感謝します –

0

ヘッダーのエラーはメール配信に影響します。たとえば、間違ったヘッダーを含むメールを送信すると、そのユーザーの電子メールが[email protected]であり、そのユーザーの名前が「ユーザー・ユーザー」であり、[email protected]に電子メールを送信すると、サーバー上で一致しない場合は、迷惑メールを受信するか、まったく受け付けません。

Gmailは、すべてのメールIDに関連付けられた名前を持っています。メールに間違った名前をつけた場合、メールが受信トレイに表示されないことがあります。

"しかし、添付のリンクでは、フォーム入力によって設定された 'from'ヘッダーを使用していますか?

ユーザーにメールを送信できるようにするには、自分のメールアドレスを送信者のメールアドレスとして使用することをおすすめします。例えば。あなたのウェブサイトがwebsite.comにある場合は、 "[email protected]"のような電子メールを設定し、これをFromヘッダーとして使用するようにスクリプトを設定すると、同じドメイン(website.com)または任意のドメインあなたが承認した他の電子メール。ユーザーの実際の詳細をメールに追加することができます。いつでも確実にメールの配信が確実に行われます。

関連する問題