Windows XP Pro を使用して、XHTML でゼロから Web サイトをコーディングしました。これには、PHP の連絡先フォームが含まれます。Web サイトは C ドライブの XAMPP フォルダーにあり、自宅のコンピューターの localhost で実行されています。
フォームからメール テスト メッセージを実際のメール アドレスに送信して、フォームをテストしたいと考えています。SMTP = localhost
PHP.ini
ファイルのをISPサーバーアドレスに 変更し、行をアクティブにしてこれを試しました。
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
下の行の先頭にセミコロンを追加し、
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
次のように、ライブメールアドレスを連絡フォームコードに配置しました。
<?php
//send email
if(mail('my@emailaddress.net','Contact
form',$msg, 'From:postmaster@localhost')) {
?>
if(POST) function
次に、代わりにメールアドレスを下に置く別の方法を試しました。
<?php
if($_POST) {
$fName = $_POST['fName'];
$fEmail = $_POST['fEmail'];
$fComments = $_POST['fComments'];
$fCaptcha = $_POST['fCaptcha'];
$random_string = $_POST['random_string'];
$to = "myemailaddress@myisp.net";
?>
それに応じて、スクリプトの下部にあるメール機能を変更しました。
<?php
//send email
mail($to, $fName, $fEmail, $fComments);
if(mail($to,'Contact form',$msg, 'From:postmaster@localhost')) {
header("Location: ../email-thankyou.htm");
?>
送信ボタンをクリックすると、最初は ISP サーバーからエラー ページが生成され、その後の試みでは Firefox ブラウザからエラー ページが生成されたので、何かが起こっているのですが、ライブ メール アカウントを確認してもメッセージの兆候はありません。到着。
また、2 番目の方法を試したときに送信ボタンをクリックすると、フォーム自体が消え、ページの背景色だけが残っていることがわかりました。
スタック オーバーフローで同様のクエリを検索し、いくつかの提案を試みましたが成功しませんでした。
XAMPP バージョン 3.1.0.3.1.0 を使用しています。私は XHTML コーディングに精通していますが、PHP プログラミングに関してはまったくの初心者です。PHP を使用するこのプロジェクトは、PHP を理解するための最初の試みであり、特に mail($to, and if(mail($to, out
正しく。
Cドライブにsmtp4dev 2009をダウンロードしてインストールすることで、この質問に対する答えを見つけました。この小さなプログラムを XAMPP と組み合わせて使用することで、コンタクト フォームをテストし、メッセージを正常に受信できるようになりました。他に必要だったのは、XAMPP php ini ファイルを次のように構成することだけでした。
[mail function]
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
SMTP = localhost
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = postmaster@localhost
; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesC:\xampp) fakemail and mailtodisk do not work correctly.
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path.
; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)
;sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the C:\xampp\mailoutput folder
;sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
送信ボタンをクリックするとフォームが消えるという以前の問題に関する限り、スクリプトの一部が間違った場所にあり、それを配置する際に試行錯誤した後、この問題は解決されました。