回答受付が終了しました

PHPについての質問です。 webページにアクセスしたらIPを取得してメールに送るというのを作ってみたのですがうまくいきません。どうすればよろしいでしょうか? 以下コードです↓

PHP | ホームページ作成71閲覧xmlns="http://www.w3.org/2000/svg">50

回答(2件)

0

マルチバイト文字対応関数を使うことと、 メールが送れるサーバを使うことの2つが必要です。 <?php $to = "example@gmail.com"; $from = "example@gmail.com"; $subject = "新しいアクセス者"; $message = "下記のIPアドレスからアクセスがありました。\n" . $_SERVER["REMOTE_ADDR"]; if (mb_send_mail($to, $subject, $message, $from)) { echo "メールが送信されました。"; }else{ echo "失敗"; }

0

どういうものを参考にして書かれたのでしょうか? mail関数で subject や message に「日本語」を使ってはいけません。mb_send_mail が mail として呼び出せる環境なら問題ないのでしょうけど、それを確認していますか? https://www.php.net/manual/ja/function.mail.php subject と message に変換が必要なら mb_send_mail を使います。 mb_language でメールの「言語」を指定しますし、文字セットが正しくmb_internal_encoding で指定されていないといけません。 https://www.php.net/manual/ja/function.mb-send-mail.php また第4引数は additional_headers なので、 × $from = "example@gmail.com"; 〇 $from = "From: example@gmail.com"; としないといけません。ただし、このままだとGMail側で「From詐称」と判別されてしまう可能性が高いです(実際にそうですよね)。