• ベストアンサー

phpからメール送信出来ない

phpでメールフォームを作り、send_inquiry.phpを作り、送信ボタンをクリックしても、エラーになります。エラー文は『ローカルホストを確認しなさい。smtpの設定を確認しなさい』と英文で出ます。ローカルホストやstmpの設定はどう確認し、どう変更するんでしょう?初心者なんで出来るだけ分かりやすくお願いします。

noname#142312
noname#142312
  • PHP
  • 回答数2
  • ありがとう数0

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

前回書いたとおりOSがわからないと適切な回答ができません。 win系であればphp.iniの記述を調整してください(メールサーバーを指定する) [mail function] SMTP = ・・・ smtp_port = 25 UNIX系だと自らsmtpになりやすいので設定さえしてあれば すんなり通るでしょうし、ダメならPEARでも簡単にいけます。 入門書でメール送信まで書いてあるということですが トラブルシューティングがないなら中途半端な入門書ですね あんまり良書ではないのかもしれません

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

OSが書いていないのでなんとも言えませんが、 PHPでメールを送るというのはPHPが稼働しているサーバー自身が メールサーバー(smtpサーバー)になっている前提になります。 メールサーバーを立てるスキルがないなら、外部メールサーバーを 利用する手もありますので、そちらの方が現実的かもしれません。 その場合はPEAR:Mailなどを利用するとよいでしょう。 http://pear.php.net/manual/ja/package.mail.mail.php PEARを理解できない・・・的な話になると打つ手はないので 「PHPからメールは送れない」と思った方がいいです。

noname#142312
質問者

補足

phpの入門書どおりに進めてるのに失敗する意味がわかりません。ちなみにザンプをインストールしています。

関連するQ&A

  • 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を勉強して居る者です。 自分のPCにXAMPPをインストールして、 フォームの確認をしたところエラー表示が出ます。 Warning: mail() [function.mail]: Failed to connect to mailserver at "○○○" port 587, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\xampp\htdocs\test\download_00\mail_submit.php on line 54 php.iniの設定はしました。 ローカルではエラーが出るものの、サーバーにアップしてみたところ、正常にフォームは動きました(ただメールのタイトルが文字化け してました) 文字化けに関しては調べようと思います。 ローカルサイトでのフォームの確認は無理なのでしょうか? 駄文で申し訳ございませんが、宜しくお願い致します。

    • 締切済み
    • PHP
  • phpでメール送信

    phpでメールを送信しようとすると、 Warning: mb_send_mail() [function.mb-send-mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() というエラーが出てしまいます・・・。 何が原因なんでしょうか?Localhostの原因でしょうか?

    • 締切済み
    • PHP
  • phpエラー(メールが送信できない)

    phpのエラーの原因について(メールが送信できない) 「つくって覚えるPHP入門」で勉強しているのですが、 本書の59ページに書いてある次のソース通り <html> <head> <meta http-equiv="Content-Type" Content="text/html; charset=Shift_JIS"> <title>お問い合わせフォーム</title> </head> <body> <?php // お問い合わせタイトル、詳細のセット $title = htmlspecialchars($_POST['title'], ENT_QUOTES); $message = htmlspecialchars($_POST['message'], ENT_QUOTES); // 日本語(SJIS)の指定 mb_language('ja'); mb_internal_encoding('SJIS'); // Fromアドレスの設定(自動送信<送信元のアドレス>) $name = '自動送信'; $email = '<送信元のアドレス>'; $header = 'From: '. mb_encode_mimeheader($name) . '<' . $email .'>'; // メール送信 $result = mb_send_mail("<自分のアドレス>", $title, $message, $header); //メール送信の確認 if ($result) { // メール送信の成功 echo '■お問い合わせ内容を担当者へ送信しました。'; } else { // メール送信の失敗 echo '■担当者への送信に失敗しました。'; } ?> </body> </html> で実行したら Warning: mb_send_mail() [function.mb-send-mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\send_inquiry.php on line 24 ■担当者への送信に失敗しました。 というエラーメッセージが出ます 本書どおりphp.iniでプロバイダで指定してあるポート番号を記述しているのですが・・・(プロバイダはOCNです) ご教授願います

    • ベストアンサー
    • PHP
  • PHP上でのメールフォーム送信設定

    こんにちは。 メールフォームの送信する際の設定について質問があります。 メールフォームの送信ボタンを押した後、下記のようなエラーメッセージが出ました。 Warning: mb_send_mail() [function.mb-send-mail]: Failed to connect to mailserver at "smtp.mail.yahoo.co.jp" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\program files\apache group\Apache\htdocs\mytest16-1.php on line 65 yahooメールを使っての送信を考えていて、yahoo側の登録は完了しました。 php.iniファイルは以下のように変更しました。 [mail function] ; For Win32 only. SMTP = smtp.mail.yahoo.co.jp←ここを直しました smtp_port = 25 ; For Win32 only. sendmail_from = xxxxxxx@yahoo.co.jp         ↑ここを直しました。 ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ;sendmail_path = その後、Outlookを利用してPOP3送受信も行い、正常に終了しました。 しかし、まだ同様のエラーが出続けてしまいます。 初心者ですので、メールに関しての知識がほとんどありません。どのように解決したらよいのかを詳しく教えていただければと思います。 よろしくお願いします。 環境:WindowsXP, Apache2.0, MySQL1.4, PHP5

    • ベストアンサー
    • PHP
  • PHP/XAMPPのローカルホストからのメール送信

    1) 困っている点 PHP初心者です。PHPでXAMPPを用いてお問い合わせフォームからローカルホスト経由でメールを飛ばすことができるよう環境設定をしていますが、つまづいています。ご教示くださるようお願いします。他に試す箇所、確認すべき個所はありますでしょうか。 環境条件は、Windows11を使用。メールアドレスは外部プロバイダーメール(OCNの@dream.com)を用いて設定を試みています。XAMPPはApache/2.4.56 (Win64) OpenSSL/1.1.1t PHP/8.2.4 Server at localhost Port 80。 (なお、一通り、PHPの基本的なプログラムは記載し、Marina DB含め、ローカルホストからメールを飛ばさないPHPコードは無事動いています。) 2)PHPのコード ローカルホストから自分のgmailにメールに飛ばすテスト hogehoge@gmail.comのhogehogeの箇所は自分のメールアドレスを記載。PHPではエラーを表示するようにさせた。 <?php error_reporting(E_ALL); ini_set('display_errors', 1); mb_language('Japanese'); mb_internal_encoding('utf-8'); $to = 'hogehoge@gmail.com';  ←hogehogeは自分のgmailアドレス $subject = 'メール送信テスト:test for PHP'; $message = 'メール送信テスト:test for PHP'; $headers = 'From: 自動送信 <hogehoge@dream.com>' . "\r\n"; ←hogehogeは自分のプロバイダーアドレス $headers .= 'Content-Type: text/plain; charset=utf-8'; if(mb_send_mail($to, $subject, $message, $headers)) { echo "送信完了"; } else { echo "送信失敗"; } ?> 3) phpホルダー内のphi.iniの記載 (一部抜粋) [mail function] ; For Win32 only. ; https://php.net/smtp SMTP=localhost  ← 修正 https://php.net/smtp-port smtp_port=25     ← 修正 sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" ← 修正 上記のSMTP、Portのパラメータは下記のHPを参考にし、倣った。 https://miya-system-works.com/blog/detail/xampp-send-mail/ *なお、ここの箇所では下記のパラメータでも行ったがNG。エラーメッセージは5)ii)に記載。 このパラメータはsendmail.iniで入力したものと同じ。 SMTP = smtp.ocn.ne.jp smtp_port = 465 sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" 4) sendmail内ホルダーのsendmail.iniの記載 (一部抜粋) hogehogeの箇所は自分のアドレス、P/Wを入力。 pop3_~=~の箇所は三行空欄。 smtp_server=pop.ocn.ne.jp ← 修正(プロバイダー案内通り) smtp_port=465 ← 修正 (プロバイダー案内通り) smtp_ssl=auto ← 修正 auth_username=hogehoge@dream.com ← 自分のアドレスに修正 auth_password=hogehoge       ← 自分のPWに修正 ; if your smtp server uses pop3 before smtp authentication, modify the ; following three lines. do not enable unless it is required. pop3_server=       ← デフォルトのまま空欄 pop3_username=     ← デフォルトのまま空欄 pop3_password=     ← デフォルトのまま空欄 force_sender=hogehoge@dream.com ← 自分のアドレスに修正 5) ブラウザーでの表示 (上記2)のコードを走らせた後) ポートに接続できないとのエラーメッセージ。しかし、6)に記載したThunderbirdからはポート:465からメールを送れている。 i) SMTP:localhost,、SMTPポート:25の場合 Warning: mb_send_mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\test\test_sendmail_2.php on line (mb_sendとしたPHPコードのラインの箇所) 送信失敗 ii) SMTP :smtp.ocn.ne.jp、 SMTPポート:465の場合 Warning: mb_send_mail(): Failed to connect to mailserver at "pop.ocn.ne.jp" port 465, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\test\test_sendmail_2.php on line (mb_sendとしたPHPコードのラインの箇所) 送信失敗 6)補足 なお、プロバイダーメールアドレス、PWは念のためローカルPC上にメールソフトを新規にThunderbirdを落とし、設定したところ、溜まっていたプロバイダーメールは全て落ちてきたのでPWに間違いはないことを確認済み。その際、SMTPサーバー名とsmtp_portは自動検出されたので、手打ちはしていない。Thunderbirdでは自動的にSMTPサーバー名:smtp.ocn.ne.jp、ポート:465で設定されていた。 以上よろしくお願いします。説明不足、用語の使い方で適切でない箇所がありましたら、修正、追記します。

  • 現在趣味でPHPを勉強しています。PHPでメールが送信できずに困ってい

    現在趣味でPHPを勉強しています。PHPでメールが送信できずに困っています。お手数をおかけして申しわけありませんが、皆様のお知恵をお借しいただけますでしょうか。 よろしくお願いいたします。 ■サーバ環境 OS:windowsXP PHP:5.3.0 Apahce:2.2.11 ■困っている内容 PHP.iniで以下の設定の上、以下のプログラムでメール送信しましたが、以下のエラーが返ってきて送信できません。 (1)php.ini設定 *プロバイダーに指定されたメールサーバーとメールアドレス。コマンドプロンプトからはtelnetに接続でき、メール送信も可能。 [mail function] ; For Win32 only. ; http://php.net/smtp SMTP = mb.nifty.com ; http://php.net/smtp-port smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from sendmail_from = xxxxxx@nifty.com (2)送信プログラム <?php //内部エンコーディング mb_internal_encoding("UTF-8"); //メール内容 $add = "xxxxx@live.jp"; $subject = "test"; $msg = "test"; //メールエンコーディング mb_language("Japanese"); //メール送信 if(mb_send_mail($add,$subject,mb_convert_encoding($msg,"JIS","UTF-8"))){ print "送信完了しました"; }else{ print "メール送信に失敗しました"; } ?> (3)エラー内容 Warning: mb_send_mail() [function.mb-send-mail]: SMTP server response: 501 5.0.0 Invalid domain name in C:\wamp\www\test\mail.php on line 15 メール送信に失敗しました (4)備考 自分でエラー内容からいろいろ調べてみたのですが、そのものずばりのエラー内容は少なく、何が原因かわかりませんでした。エラー内容からPHPがメール送信しようとしてもサーバではじかれているような感じがするのですが、いかがでしょうか。 ご存知の方がいらっしゃいましたらご教示ください。よろしくお願いいたします。

    • 締切済み
    • PHP
  • メール送信に関するエラー

    最近プロバイダーを変えたせいかメールが送れなくなりました。以下のようなエラーが出て困ってます。どうか教えていただけませんか ホスト 'stmp.eonet.ne.jp' が見つかりません。 サーバー名が正しいことを確認してください。 アカウント : 'pop.eonet.ne.jp', サーバー : 'stmp.eonet.ne.jp', プロトコル : SMTP, ポート : 25, セキュリティ (SSL) : なし, ソケット エラー : 11001, エラー番号 : 0x800CCC0D

  • スマホからPHPでメール送信したいと考えています。

    スマホからPHPでメール送信したいと考えています。 ユーザーが私のサイトにアクセスしてフォームで送信というイメージです。 使っている環境はWindowsです。 xamppもPCにインストールしてあります。 (使い方は分かっていません) スマホのサイトの情報は下記です。 SMTP  www.abcd.jp(仮に) sendmailのパス  /usr/sbin/sendmail フォームを作り、phpにデータを渡すところまでつくりました。 phpは下記のように書いています。 <?php $message = "名前:" . $_POST["namae"] . "\n電話:" . $_POST["tel"] . "\n年齢:" . $_POST["age"] . "\n本文:" . $_POST["com"]; if (!mb_send_mail("info@abcd.jp", "モバイルからのお問い合わせ", $message, "From: " . $_POST["mail"])) { exit("error"); } ?> この状態では当然のようにerrorが表示されるだけです。 あとはSMTPとかsendmailを何とかするんだと思うのですが その辺りが全くわかりません。初心者です。 ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • PHPでのメール送信フォーム

    現在、PHPメール送信フォームを作成しています。 SMTPを使用してフォームを作成したいのですが、SMTPをどのように組み込んだら良いのかいまいち分かりません。 私の環境は、Windows2000、Webサーバー『APACHE』、PHP『php-4.2.0-Win32』を使用しております。 どなたか分かる方がいましたら、どうぞよろしくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう