0

MAMP環境で正常に機能する連絡フォームを備えたWordPressサイトがありますが、クライアントにWIMPサーバーを公開すると失敗します。

  • 私はWIMP環境にまったく精通していません-PHPエラーログをチェックするにはどうすればよいですか
  • オフハンド、これを引き起こす可能性のあるWIMPでのPHP電子メールの問題はありますか?

コード:

<?php 

if ($_POST["contact_name"]<>'') { 
    $ToEmail = 'me@domain.com'; 
    $EmailSubject = 'New contact message';  
    $mailheader = "From: ".$_POST["contact_email"]."\r\n";  
    $mailheader .= "Reply-To: ".$_POST["contact_email"]."\r\n"; 
    $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";  
    $MESSAGE_BODY = "<b>Name:</b> ".$_POST["contact_name"]."<br>";  
    $MESSAGE_BODY .= "<b>Email:</b> ".$_POST["contact_email"]."<br>";
    mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 

?> 
<h4>Your message was sent. We will be in touch with you shortly.</h4>
<?php 
} else { 
<form id="contact-form" name="contact" method="post" action="#">
<label for="contact-name">Name *</label>
<input type="text" id="contact-name" name="contact_name" tabindex="1" class="required"/>
<label for="contact-email">Email</label>
<input type="text" id="contact-email" name="contact_email" tabindex="2" class="email" />
<input type="submit" id="contact-submit" name="contact_submit" value="" tabindex="8" />
</form>
<?php 
}; 
?>
4

2 に答える 2

3

Windowsには、unixタイプのOSのように電子メールサーバーが組み込まれていません。電子メールを中継するためのSMTPサーバー情報を追加するようにphp.iniを構成する必要があります。

于 2011-06-17T14:08:30.980 に答える
2

`mail()'関数のPHPマニュアルページには、Windows固有のポイントの詳細が記載されています。ただし、あなたに影響を与える可能性のある主なポイントは、このセクションにあります:(引用する)

mail()のWindows実装は、Unix実装とは多くの点で異なります。まず、メッセージの作成にローカルバイナリを使用せず、直接ソケットでのみ動作します。つまり、MTAはネットワークソケット(ローカルホストまたはリモートマシンのいずれかで可能)でリッスンする必要があります。

次に、From:、Cc:、Bcc:、Date:などのカスタムヘッダーは、そもそもMTAによって解釈されませんが、PHPによって解析されます。

そのため、toパラメーターは。の形式のアドレスであってはなりません"Something <someone@example.com>"。mailコマンドは、MTAとの通信中にこれを正しく解析しない場合があります。

他にも考慮すべきことがいくつかあります。詳細については、マニュアルページをお読みください。

お役に立てば幸いです。

于 2011-06-17T14:11:17.060 に答える