- 締切済み
フォームに記入したデータをメールで受け取る。
こんばんは。PHPをはじめてまだ一ヶ月くらいの素人です。 フォームに入力した情報をメールで受け取るPHPのスクリプトとHTMLを作成してメーラーで確認したところ下記の表示で受け取りました。 apple Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit 山田太郎 フォームには名前(山田太郎と記入)と好きな果物(りんごを選択)という項目で作成して情報を得ることができのですが、Mime-Version: 1.0~からのこの3行はの文字列はなんなでしょうか?何か変換などしないといけないのでしょうか? ★フォーム(HTMLソース) <html> <head> </head> <body> <form method="POST" action="post2_1.php"> 名前<br> <input type="text" name="name" size="15"><br> 好きな果物<br> <input type="radio" name="food[]" value="orange">オレンジ <input type="radio" name="food[]" value="apple">りんご <input type="radio" name="food[]" value="strawberry">いちご<br> <input type="submit" value="送信"> </form> </body> </html> ★PHP(スクリプト) <?php $to='×××××××@○○○.jp'; $subject='テストメール'; if(mb_send_mail($to,$subject,$_POST["name"],$_POST["food"][0])){ print('メール送信に成功しました。'); } else{ print('メール送信に失敗しました。'); } ?> よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- wp_
- ベストアンサー率54% (132/242)
bool mb_send_mail ( string $to, string $subject, string $message [, string $additional_headers [, string $additional_parameter]] ) 4番目の引数はオプションで、明示的にヘッダを書きたいときに使います。 通常はFromなどの指定を行うために使います。 質問者様のコードの場合ですと >apple ←コレ >Mime-Version: 1.0 >Content-Type: text/plain; charset=ISO-2022-JP >Content-Transfer-Encoding: 7bit > >山田太郎 の「apple」という文字列がヘッダに入っています。(最初の空行までがヘッダです。以降はbody。) たぶんコレ余分です。一見して普通の動作はすると思いますけどね^^; サーバ側で余計なalertが出ているかもしれません。 以下三行は通常のメールヘッダです。 MTAなどが判別を行い、正常に動作させるために必要なものです。 ちなみに、それぞれ ・MIMEのバージョン指定 ・この文はtext/plainで文字コードがiso-2022-jp ・エンコードは7bitベース ということを表しています。SMTPの仕様に書いてあった気もしますが。 Fromがないと正常な動作をしないかもしれませんね。 RFC2821 http://tools.ietf.org/html/rfc2821 Wikipedia SMTP http://ja.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
- ma2shin
- ベストアンサー率41% (69/167)
$_POST["motomail"]= ;//ここにfromにするメールアドレスを記入 $_POST["body"]=$_POST["name"].$_POST["food"][0]; mb_language('Japanese'); mb_internal_encoding("EUC-JP") ; $_POST["mailfrom"]="From:" .mb_encode_mimeheader("送信者の名前") ."<".$_POST["motomail"].">"; mb_send_mail($_POST["to"],$_POST["subject"],$_POST["body"],$_POST["mailfrom"]); 以上でいけると思います。 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit 上記は、from(header)を指定しない為と思われます。 PHPのポケットリファレンス等を買われた方がいいと思います。 今後なにかと役に立ちます。