PHPでメール送信-ヘッダについて

このQ&Aのポイント
  • PHPでメール送信の際にヘッダ部分を記述する方法と、-fオプションの使い方について質問があります。
  • Return-Pathの設定方法について、詳しく調査している中で、X-Mailerの設定についても質問があります。
  • PHPのバージョンが4であることから、phpversion関数を使用する際にバージョンを指定する必要があるかどうかを知りたいです。
回答を見る
  • ベストアンサー

PHPでメール送信-ヘッダについて

フォームから入力した内容を、PHPでメール送信させる際についての質問です。 mb_send_mail($to, $subject, $body); として、 $body(本文)の後ろに、メールのヘッダ部分を記述したいのですが、いろいろ検索をかけて調べていますと、"From:"に-fオプションを付けなければいけない場合があるらしいのですが、-fオプションとはどういった動きをするのでしょうか。 説明を読んだのですが、よくわかりませんでした。 エンベロープのsenderアドレスを設定する際に使用するそうですが?? Return-Pathの設定をしたくて、検索をかけていたのですが、この方法でしょうか? また、X-Mailerの設定は X-Mailer: PHP/' . phpversion(); という文字列そのまま変更なしで追加すればいいのでしょうか。 調べていると、こういった記述のサイトがたくさんあったのですが、 phpversion(); の()に、バージョンを入れなければいけない、ということはありますでしょうか。 phpのバージョンはphp4です。 ご存知の方ご回答ください。お願いします。

  • PHP
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

mb_send_mail()はmail()のラッパー関数なので、基本的な情報はmail()と同等です。 有効になるパターン(PHPバージョンとsafemode)もあるので、 利用する場合は条件判断が必要になります。 http://jp.php.net/manual/ja/function.mail.php > sendmail_path を用いてメールを送信する際に利用する 追加パ > ラメータとして、additional_parameters が用いられます。 X-Mailerは、そのままでなくても構いませんが、基本的に送信者のメーラーとそのバージョンを表記します。 OutlookExpressからの場合は「Microsoft Outlook Express 6.00.2900.2869」などです。 phpversion()は()がないと動作しません。 http://jp.php.net/manual/ja/function.phpversion.php

関連するQ&A

  • PHPでのmail送信に関して

    教えて下さい。 PHPの中で、mail関数を用いてメール送信をしたいと考えていますが、 下記のようなエラーでどうしても送信できません。 Warning: mail() [function.mail]: SMTP server response: 999 5.7.1 Unable to relay for xxx.xxx@xxx.co.jp in C:\Apache Group\Apache2\htdocs\PHP\mail.php on line 9 phpの方の記述は、 <?php $to = 'xxx.xxx@xxx.co.jp'; $subject = 'the subject'; $message = 'hello'; $headers = 'From: xxx.xxx@xxx.co.jp' . "\r\n" . 'Reply-To: xxx.xxx@xxx.co.jp' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?> としてあります。 php.iniの部分も以下のように変更しています。 [mail function] ; For Win32 only. SMTP =xxx.xxx-mail.ne.jp ← ここをSMTPのメールサーバにしてあります。 ; For Win32 only. ; sendmail_from = ; For Unix only. You may supply arguments as well (default: 'sendmail -t -i'). ;sendmail_path = エラーを解除する為にはどこを修正すれば良いでしょうか。。。 教えて下さい。 宜しくお願いします。

    • 締切済み
    • PHP
  • PHPで自動メール送信をしたいのですが

    PHPを利用して一ヶ月未満でPCにつての知識ほとんどありません。 どうかよろしくお願いします。 本題ですが。今自分がPHPでやりたいことは。 送信ボタンをクリックして何日後にメールを送りたいのですが。出来るのでしょうか? 一応md_send_mail()を利用してクリックするとメールは送る事はできました。 OS:MAC OS X 10.3.7 PHPVersion 5.0.2

    • 締切済み
    • PHP
  • phpからのメール送信が文字化け

    phpでメールを送信できるようなりましたが、メールは無事に送信されるのですが、OutLookで受信すると文字化けしてしまいます。色々調べたんですがどうも解決できません。 phpのtextエディターはUTF-8設定にして記入しました。メールソフト(OutLook)受信のエンコードは色々試したのですが、文字化けしてしまいます。 どのように文字設定をすると文字化けしないのでしょうか。 「テスト」と言う文字を送信すると「eXg」となり表示されます。 よろしくご指導お願いいたします。 <?php $mailto="*******@yahoo.co.jp"; $mailsbj="テスト"; $mailbody="テスト"; $mailheader="From:*******@***.biglobe.ne.jp\nReply-To:*******@yahoo.co.jp\nX-Mailer:PHP/".phpversion(); mb_language("ja"); mb_internal_encoding("UTF-8"); ?>

    • ベストアンサー
    • PHP
  • ドロップダウンで送信先を変更するメールフォーム

    ホームページでメールフォームを使用しています。 htmlで作ったフォームからPHPファイルを呼び出すというやり方です。 フォームに入力された内容を、PHP内で指定したメールアドレス宛に送るごく普通のメールフォームです。このメールフォームを改造して、問い合わせ項目ごとに別のメールアドレス宛に届くようにしたいのです。 以下のようなドロップダウンリストを作成して、 <form action="mail.php" method="post"> <fieldset> <p><span class="find">お問い合わせ項目 [必須]</span> <select name="お問い合わせ項目"> <option value="未選択">お選び下さい</option> <option value="サークルについて">サークルについて</option> <option value="学部について">学部について</option> <option value="その他">その他</option> </select> </fieldset> </form> サークルについての項目が選ばれたら、xxx@xxx.com へ 学部についての項目が選ばれたら、ooo@ooo.com へ、 それぞれメールを送りたいのですが、PHP側でどのような記述を加えればよいでしょうか。 PHP側には送信先1つだけを記述するように作ってあり、 メール送信ルーチンでこれを呼び出しています。 $To = "xxx@xxx.com"; フォームのnameを使ってifでできるかと試しましたが、見よう見まねでは挫折してしまいました。説明不足かもしれませんがお教えいただけませんでしょうか。 ↓PHPのメール送信部分の記述だと思います。 $body=mb_convert_encoding($body,"JIS","SHIFT_JIS"); $sbj="=?iso-2022-jp?B?".base64_encode(mb_convert_encoding($sbj,"JIS","SHIFT_JIS"))."?="; if($from_add == 1) { $from = $_POST['email']; $header="From: $from\nReply-To: ".$_POST['email']."\nContent-Type: text/plain;charset=iso-2022-jp\nX-Mailer: PHP/".phpversion(); } else { $header="Reply-To: ".$_POST['email']."\nContent-Type: text/plain;charset=iso-2022-jp\nX-Mailer: PHP/".phpversion(); } if($chmail == 0 || $sendm == 1) { mail($to,$sbj,$body,$header); if($remail == 1) { mail($reto,$resbj,$rebody,$reheader); } }

    • ベストアンサー
    • PHP
  • PHP の mb_send_mail で HTMLメール送信

    mb_send_mailでHTMLメールを送信すると 受信メールのヘッダ情報が勝手に追加されてしまいます。 【PHP内で指定しているヘッダ】 $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-2022-jp' . "\r\nX-Mailer: PHP/".phpversion(); 【受信メールのヘッダ情報】 Mime-Version: 1.0 Mime-Version: 1.0 Content-Type: text/html; charset=iso-2022-jp Content-Type: text/plain; charset=ISO-2022-JP というように、指定もしてないContent-Type: text/plainが 追加されたり、Receivedも同じように勝手に追加されてしまいます。 考えられる原因を教えていただけますか?

    • ベストアンサー
    • PHP
  • PHPのメール送信ができません

    初心者な者でこのような質問でごめんなさい。 私は10日でおぼえるPHPという本で勉強しているのですが 下記の内容に困ってます 【mail_input.php】 10日でおぼえるPHP5入門教室(アンケート)</h1> <form method="post" action="sendmail.php"> <input type="hidden" name="_email" value="****@***.jp" /> <input type="hidden" name="subject" value="10日でおぼえるPHP5入門教室" /> <input type="hidden" name="_result" value="<?php print($_SERVER['PHP_SELF']);?>" /> <table border="0"> <tr> <th align="right">名前:</th> <td><input type="text" name="name" size="20" maxlength="30" /></td> </tr><tr> <th align="right">E-Mail:</th> <td><input type="text" name="_from" size="50" maxlength="255" /></td> </tr><tr> <th align="right" valign="top">自由記入欄:</th> <td><textarea name="memo" cols="50" rows="5"></textarea></td> 【sendmail.php】 <?php $header_info="From: ".$_POST['_from']."\nContent-Type: text/plain;charset=ISO-2022-JP\nX-Mailer: PHP/".phpversion(); $body="■■".$_POST['_subject']."■■\n\n"; foreach($_POST as $key=>$value){ if(!strstr($key,"_")){ $body.=" [".$key."] ".$value."\r\n"; } } mb_send_mail($_POST['_email'],$_POST['_subject'],$body,$header_info); header("Location: ".$_POST['_result']); ?> ===================================================== 上記の内容でメールが送れるとの事だったのですが php.iniの設定も SMTPやsendmail_fromどちらとも設定はでき 送れるはずなのですがメールが届きません なぜなのでしょうか? もしよろしければ教えて頂けないでしょうか? お願いします。

    • 締切済み
    • PHP
  • PHPでメールの送信ができない

    xampp1.8.0環境から PHPのmb_send_mailでメールの送信をしようとしています。 php.ini SMTP = smtp.xxx.ne.jp (プロバイダから指定されてるもの) smtp_port = 25 xampp1.7.7くらいの環境のときは↑の設定のみで送信できたのですが 新しいバージョンに変えてから送れなくなりました。 古いバージョンのphp.iniと差し替えると送信可能になります。 上記の2行以外でメールの設定に関わる部分はありますでしょうか?

    • 締切済み
    • PHP
  • phpでショッピングカート

    phpのショッピングカートでメール送信でエラーになります。 サーバーに問い合わせたところ -fのオプションを書き込まないといけないそうですが上手くいきません。 mail send $re = mail_send($from,$to,$sub,$body); if($bcc){ mail_send($bcc,$to,$sub,$body); } mail_send($to,$from,$sub,$body); 上記の場合-fオプションはどのような記述になるか分かる方いましたら 教えてください。

    • 締切済み
    • PHP
  • phpからメールを送信したいです。

    phpからメールを送信したいです。 やりたい事はそれだけですが、根本的によく分かっていないところがあり、その辺りを整理したいと思っています。 何分、概念をよく理解していないので、意味不明な事を書くかもしれませんが宜しくお願い致します。 CentOS7にアパッチとPHPをインストールしました。 WEBルート上に下記のtest_phpinfo.phpを配置し、 ブラウザから http://IPアドレス/test_phpinfo.php で呼び出すと、 phpinfoの情報が画面上に出ています。 次に、 WEBルート上に下記のtest_mb_send_mail.phpを配置し、 ブラウザから http://IPアドレス/test_mb_send_mail.php で呼び出すと、 (画面に出すものは何も書いていないので)真っ白な画面が出て、自分のアドレスにメールが届いて欲しいのですが届きません。 あと、具体的に何が必要なのかという事が分かりたいのですが、それとは別に幾つか質問があります。 phpのmb_send_mail関数自体にはメーラの機能はあるのですか?ないのですか? phpのエンジンと追加モジュールでメーラの機能があり、その設定が必要なのか? phpのmb_send_mail関数自体にはメーラの機能はなく、postfixなどのメールサーバーを仲介するだけなのか? メール送信に必要なのは何ですか? 普通にPCからメールを送る場合は、 サンダーバードとかOutlookといったメーラと、自分のメールアドレスが必要です。 自分のメールアドレスの情報として メールアドレス、パスワード、 IMAPかPOPサーバー名、ポート番号 接続の保護、認証方式 SMTPサーバー名、ポート番号 接続の保護、認証方式 が必要です。 phpのmb_send_mail関数からメールを送信する場合も同様にこれらが必要ですか? このサーバーでメールを管理したいわけではなく、ただメールを送りたいだけです。 それでもメーラのようなモノではなく、メールサーバーが必要ですか? 以上、宜しくお願い致します。 [test_phpinfo.php] <?php phpinfo(); ?> [test_phpinfo.php] [test_mb_send_mail.php] <?php mb_language("Japanese"); mb_internal_encoding("UTF-8"); mb_send_mail("自分のアドレス", "件名", "本文", "From: from@example.com") ?> [test_mb_send_mail.php]

    • ベストアンサー
    • PHP
  • PHPでmailもしくはmb_send_maiを使って文字化け

    いろいろサイトで調べてもはっきりした答えがないので質問しました。 パターン1・・・mail関数 $mail_subject = '入会申込受付のご連絡'; $mail_subject = base64_encode($mail_subject); $mail_subject = '=?ISO-2022-JP?B?' . $mail_subject . '?='; $header = "From: $sousin_email\n"; $header .= "Reply-To: $email\n"; $header .= "Date: $mail_date\n"; $header .= "X-Mailer: PHP/".phpversion()."\n"; $mail_body= "こんにちは"; mail($myemail, $mail_subject,$mail_body,$header);//ユーザーへ この場合、OutLook、Docomo、AUのメーラーでは問題なしですが、Vodafoneの3G機種(703SH)では件名・本文が文字化け パターン2・・・mb_send_mail $mail_subject = '入会申込受付のご連絡'; $mail_body= "こんにちは"; $header = "From: $sousin_email\n"; $header .= "Reply-To: $email\n"; $header .= "Date: $mail_date\n"; $header .= "X-Mailer: PHP/".phpversion()."\n"; mb_language("Japanese"); mb_internal_encoding("sjis"); mb_send_mail($myemail, $mail_subject,$mail_body,$header);//ユーザーへ この場合、本文はvodafoneも含め文字化けしないのですが、件名が「e会申込受付のご連絡」となってしまい、入という文字が表示されません。いくつかの文字がそのように化けるのですが何が化けるのかは検証はできておりません。 mailでもmb_send_mailでもいいのですが、すっきりとほどんどのメーラーで対応できる方法はあるのでしょうか? どなたかご教授お願いします。

    • 締切済み
    • PHP