- ベストアンサー
スマホからPHPでメール送信する方法
- スマホからPHPを使用してメールを送信する方法について説明します。
- 具体的な手順としては、スマホのフォームから送信されたデータをPHPで受け取り、メールの本文を作成して送信します。
- SMTPやsendmailの設定が必要ですが、初心者でも簡単にできる方法を解説します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
サーバーのマニュアルはよく見ましたか? http://www.quick-s.net/cgi-sample/bqcgi.html#PHP
その他の回答 (3)
- shimix
- ベストアンサー率54% (865/1590)
ANo.1です。 運用環境がレンタルサーバであれば、Windowsだのxamppだのは無視していいですね(「xamppなら」という条件で私が書いた部分も忘れてください)。 >当然のようにerrorが表示されるだけです。 普通は(phpでメール送信可能と謳っているサーバなら)「当然のように送信される」ハズです。 http://php.net/manual/ja/function.mb-send-mail.php お勧めとしては(他の方も書かれているように)PEAR::Mailやjphpmailerなどのライブラリを使うべきですが(レンタルサーバはスパム判定に悩まされることが多いので)、それでも普通のレンタルサーバでmb_send_mailで(提示されたソースで)メール送信が出来ないというのは異常です。設定もれで文字化けに悩むケースは頻繁に見かけますが「送れない」というのはちょっと珍しいです。 お使いのレンタルサーバは「phpスクリプトからメール送信出来る」んですよね?(念のため確認)
お礼
解決しました。 ありがとうございました。
補足
ありがとうございます。 レンタルサーバーはクイックサーバーです。 phpスクリプトからメール送信出来る ということは不明です。 ただsenmailが使えてパスがわかっていると言うだけです。
- yambejp
- ベストアンサー率51% (3827/7415)
mb_send_mail()はよくないのでやめた方がいいでしょう PEAR::Mailでsmtpを指定してメールすれば環境依存もへるかも
お礼
解決しました。 ありがとうございました。
補足
ありがとうございます。 リンク先を参考に書いてみました。 合っているかさっぱりわからないのですが。 あと内容も一部わかりません。 <?php include('Mail.php'); //このファイルはどこにあるのでしょう? $recipients = 'joe@example.com'; //ここは何を指定するところでしょうか?? $headers['From'] = $POST[mail]; //入力してもらったメアドを入れました $headers['To'] = 'info@abcd.jp'; //受け取りメアドを入れました $headers['Subject'] = 'モバイルからのお問い合わせ'; $body = "名前:" . $_POST["namae"] . "\n電話:" . $_POST["tel"] . "\n年齢:" . $_POST["age"] . "\n本文:" . $_POST["com"]; $params['sendmail_path'] = '/usr/sbin/sendmail'; //sendmailのパスを入れました。 // Mail::factory メソッドを使用してメールオブジェクトを作成します $mail_object =& Mail::factory('sendmail', $params); $mail_object->send($recipients, $headers, $body); ?> どうでしょうか?
- shimix
- ベストアンサー率54% (865/1590)
とりあえず「私のサイト」というのは ・WinPC+xamppのLAN内のサイト(もしくは自宅サーバ) ・レンタルサーバ のどちらでしょうか。xamppであればsendmailのpathは no value のハズなので、提示された内容と矛盾します。かといってレンタルサーバで(sendmail利用可であれば)mb_send_mailの実行結果がfalseというのも考えにくいです。 なおローカルのxamppからメール送信であれば、SMTPとしてISPのメールサーバなどを指定するのが手っ取り早いと思います。
お礼
ありがとうございました。
補足
shimixさま ありがとうございます。 レンタルサーバーです。 これをこのままアップして実行すると error が表示されるので メールを送る部分ができていないようです。 xamppはphpの勉強をするときににインストールしました。 >なおローカルのxamppからメール送信であれば、SMTPとしてISPのメールサーバ >などを指定するのが手っ取り早いと思います。 これはどうすればいいのですか?
補足
ありがとうございます。 良くある質問は探してみたのですが、こちらにはたどり着けていませんでした。 次のように書き直して解決しました。 <?php mb_language("ja"); mb_internal_encoding("UTF-8"); $message = "名前:" . $_POST["name"] . "\n電話:" . $_POST["tel"] . "\n年齢:" . $_POST["age"] . "\n本文:" . $_POST["com"]; if (!mb_send_mail("info@abcd.jp", "モバイルからのお問い合わせ", $message, "From: " . $_POST["mail"], "-f info@abcd.jp")) { exit("error"); } 助かりました。ありがとうございました。 ?>