2016-03-23 11 views
0

私のウェブサイトの私の連絡フォームからのメールが届かず、これを修正する方法がわからないのですか?このWebサイトはMicrosoft Azureでホストされています。これを解決するにはどうすればいいですか?紺碧でホストされているPHPの連絡フォームからEメールを受け取るには?

私は現在持っているコードは次のとおりです。

<?php 
if (isset($_POST['contact_name']) && isset($_POST['contact_email']) 
&& isset($_POST['contact_text'])) { 
$contact_name = $_POST['contact_name']; 
$contact_email = $_POST['contact_email']; 
$contact_text = $_POST['contact_text']; 
if(!empty($contact_name) && !empty($contact_email) && !empty($contact_text)) { 

    $to = '[email protected]'; 
    $subject = 'Message from website.'; 
    $body = $contact_name."\n".$contact_text; 
    $headers = 'From: ' .$contact_email; 

    if(@mail('[email protected]', $contact_text, $body, $headers)) { 
     echo 'Thank you'; 
    } else { 
     echo 'error.'; 
    } 
} 
else { 
    echo 'You're missing something'; 
    } 
    } 
    ?> 

<form action="" method="POST"> 
    Name: <input type="text" name="contact_name"> 
    Email: <input type="text" name="contact_email"> 
Message: <textarea name="contact_text" rows="5" cols="20"></textarea> 
<input type="submit" value="Send"> 

</form> 

ありがとうございました。

+2

デバッグを開始する:あなたの耳にあなたのプログラムされた指を詰めるのをやめてください。 "lalalalalalaはあなたのことを聞くことができません" - 決して '@'を使用するべきではありません。その "エラー"出力が得られない場合は、PHPの問題ではありません。 php/mailの仕事は、あなたの封筒を通りの角まで歩き、メールボックスに投げることです。 PHPが家に戻ってきたら、その仕事は完了し、それは真を返します。それ以降に何が起こったのかを見るには、メールサーバのログを調べる必要があります。 –

+0

さて、@はすでにカバーされていますが、あなたのコードは 'あなたが何かを逃しているため'実行されるべきではありません。あなたはそれをエスケープする必要があります。 – Eihwaz

+0

もしあなたが@を使用するなら、あなたは問題が何かを決して知らないでしょう。 gmail smtpを指定することもできますか? http://swiftmailer.org/を見てみてください。 – unixmiah

答えて

0

Azure Web AppsサービスはSTMPサーバーを提供しておらず、またそのサーバー上にビルドする権限もないため、@を削除すると、Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()のような例外が発生することがあります。

Azure Web AppsでPHPアプリケーションからメールを送信するには、SendGridのような他の第三者メールサービスを利用できます。

Azure管理ポータルで簡単にSendGridアカウントを作成できます。詳細はhttps://azure.microsoft.com/en-us/documentation/articles/store-sendgrid-php-how-to-send-email/を参照してください。

さらに詳しいことがありましたら、お気軽にお知らせください。

関連する問題