• 締切済み

特定のIPアドレスでPHPを使ったメール送信ができません

PEARのMailを使ってメールを送信するソースを作成しました。 IPアドレスを自動取得した場合はきちんとメール送信ができています。 しかし、外部からの利用を可能にするためのIPアドレスに変更すると送信処理に時間がかかり、送信処理を中断してしまいます。 この特定のIPアドレスがある同一LAN内にはたくさんのPCがつながっています。 もしかしてこれが原因なのでしょうか? 動作環境:Windows+Apache2.0.52+PHP4.4.2

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

みんなの回答

回答No.2

では、メールサーバーのログを確認したほうが良いかもしれませんね。 IPアドレスを取得していると言うことはDHCPを使っているはずですから サーバーのIPアドレスやネットマスクの設定、ゲートウェイの設定などができていない あるいは、メールサーバーへのDNS解決ができていない。 というような原因が考えられます。 外部へpingを叩いて確認してください。 また、SMTPサーバーがPOP before SMTPになっていると言うことは考えられませんか? プロバイダのSMTPサーバーなどはPOP before SMTPを採用しているところが多く プロバイダ内からSMTP接続された場合は メールの受付をしますが、外部のアドレスから接続された場合は POP3認証を行っていないものに関してはメールの受付をしません。 SMTP sendmailのログを確認できれば解決の糸口が見つかるかもしれません。 ちなみに、エラーメッセージは出ていませんか?

pink_yellow-blue
質問者

お礼

WindowsXPのファイアーウォールが送信の邪魔になっていたようです。 設定を変更したらメールが送信されました。 ありがとうございました。

pink_yellow-blue
質問者

補足

>外部へpingを叩いて確認してください。 Webサーバからpingした際、特定のIPアドレスの場合yahooいけませんでした。 >SMTPサーバーがPOP before SMTPになっていると言うことは考えられませんか? POP before SMTPは採用していません。 >エラーメッセージは出ていませんか? エラーメッセージは出力されませんでした。 よろしくお願いします。

回答No.1

質問の意図が掴めないのですが IPアドレスを取得、というのはクライアント側でしょうか。 それともサーバー側を可変にしているのでしょうか。 どちらにしてもメールを送信するソースが置いてあるサーバーへは あなたがタイムアウトしてしまうと言っているPCからはうまく接続できていますか? 例えば、メールの送信フォーム?が実はキャッシュの内容が表示されていて 実際には該当のフォームを置いているサーバーにつながってはいない。 送信ボタンなどを押してフォームを送信しても実際にはサーバー自体に接続ができていない。 という事は考えられませんか? もし、サーバー自体に接続が問題なくできているようであればDNSがらみの問題かもしれませんね。 また、利用しているPCにPHPを入れてローカルで動かしていて さらにメールの送信をSMTP経由で利用しているなら IPアドレスを変更した際に今まで利用していたSMTPサーバーに 接続できなくなる。という事も考えられます。 (アクセス制限などで) いずれにしても情報不足ですので環境を詳しくアップしていただけませんか?

pink_yellow-blue
質問者

補足

>メールを送信するソースが置いてあるサーバーへはあなたがタイムアウトしてしまうと言っているPCからはうまく接続できていますか? はい、ソースがあるサーバで実験しているため接続できています。 >IPアドレスを取得、というのはクライアント側でしょうか。 サーバ側です。現在はlocalhostで実験しています。 >IPアドレスを変更した際に今まで利用していたSMTPサーバーに接続できなくなる。という事も考えられます アクセス制限がかけられていないことは管理者に確認しました。 よろしくお願いします。

関連するQ&A

  • メールでの[グローバルIPアドレス]送信

    最近まで固定IPを使っていたので外部からアクセスするのは楽だったんですけど・・・ 動的IPになってからやりずらいので IPアドレスをメールで送信してくれるソフトってありませんでしょうか? [一定時間ごとor接続ごと]

  • ある特定のアドレスにだけメールが送信できません

    現在、Outlook 2003を使用しています。 同Outlookでは、Exchangeとインターネットメール(POP3)の両アカウントの送受信をできるように設定しているのですが、インターネットメールのアカウントで特定のインターネットメールアドレスにメールを送信すると送信エラーになります。(なお、同メールアカウントでyahooメールへ送信、またはExchangeアカウントで問題となっているアドレスへ送信すると、ちゃんと送信できます) ネットで検索しても原因がつかめず困っております。 原因をご存知の方がいらしたら、教えていただけないでしょうか。 よろしくお願いします。

  • PEARを使ったメール送信でのincudeパスについて

    サーバーは某有名レンタルサーバーを用いています。 下記のように、ドキュメントルート(public_html、web、wwwなど) と同階層に、PEARディレクトリが配置されています。 また、メール送信を実行するPHPファイも、 ドキュメントルートと同階層のディレクトリ配下に存在します。 /a/b/public_html/公開ファイル /a/b/PEAR/ /a/b/xxx/yyy/メール送信実行ファイル メール送信実行ファイル内で、Mail.phpとMail/Mail.phpを用いて メール送信を行おうとしているのですが、 ソースの上部で下記のように記述すると、 どうもその部分で処理が止まってしまうようです。 set_include_path( "/a/b/PEAR" ); include('Mail.php'); include('Mail/mime.php'); コマンド上で php /a/b/xxx/yyy/メール送信実行ファイル として実行させてます。 Mail.phpとMail/Mail.phpは下記パスに存在します。 /a/b/PEAR/Mail.php /a/b/PEAR/Mail/Mail.php includeパスが間違っているのでしょうか? ご教示お願いいたします。

    • ベストアンサー
    • PHP
  • phpでメール送信ができなくなりました

    phpを使って数日までWeb上でメールの送受信を行うプログラムを作成し使用していたのですが、昨日からメールが送信されず、タイムアウトのような現象が起きました。 原因が思いつきません。 よろしくお願いします。 動作環境:Apache2.0.54+PHP4.4.2+WindowsXP

    • 締切済み
    • PHP
  • メールアドレスのみを抜き出す方法

    phpでメールの返信プログラムを作成しています。 メール送信プログラムはできたのですが、さんぷる<exsample.com>やexsample.com(sample)といった文字列の中からメールアドレスのみを抜き出す方法がわかりません。 ご教授よろしくお願いします。 動作環境:Windows+Apache2.0.52+php4.4.2

    • 締切済み
    • PHP
  • 固定IPにしたらメール送信ができない

    zamppにてサーバーを構築しており、グローバルIPがないので DDNSにて登録して、DICEで更新し運営しています。 問題なく動作して順調だったのですが、 固定IP8を取得して、ルーターとサーバーにグローバルIPを固定しました。 現在の状況ですーーー xamppにてwebサーバーを運営 グローバルIPを固定 DDNSを利用(MYDNS.JP) sendmailを設置済みCGIにて、メール送信を確認(ローカル内にて) メールサーバーmarcuryにて、ローカル内のメール送受信を確認 外部ドメインからのメール受信は確認 ーーーーーーーーーーーーーーーーー こんな感じです。 ですがIPをグローバルIPに固定したら 外に向けてのメールの送信が出来なくなり、素人なりにいろいろ調べたのですが 原因が分からず困っています。 ローカル内にはメールは届きます。 htdocs内の、htmlの表示やPHPやCGIも正常に動作し、 sendmailも、動作しています。 メールサーバーのmarcuryのログも、送信はOKを出しているのですが、 送信エラーのメールが来るので、そのメールに対しての送信OKだと思います。 やはり、サーバーをIP固定にした状態で、DDNSを使っているので 逆引きが出来ないのが、外部へのメール送信が出来ない原因なのでしょうか? どなたか、原因となるものを指摘して頂ける方は居られないでしょうか? どうか宜しくお願い致します。

  • IPアドレスと送信者の特定について

    小さいながらもサイトを持っているのですが、サイトにあるアンケートフォームから、HNは違うのですが同一人物と見られる人から嫌がらせのようなメールが届きます。 本人はばれていないと思って送信しているみたいですが、IPアドレスが同じため同一人物からだと考えるのが妥当だと思われます。 最近知り合いになった人の中で、もしかしたらこの人かも・・・と思い当たる人がいるのですが、IPアドレスから送信者がどの地域(たとえば東京の何区等)に住んでいるのか調べる方法はありますでしょうか? もし調べられる検索サイトがありましたら是非教えて下さい。

  • PHPでメールを送信するには

    PHP超初心者です。 参考本をもとにPHPでメールを送信するということにチャレンジしているのですが、次のような文章が出ます。 Warning: mb_send_mail() [function.mb-send-mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files\Apache Group\Apache2\htdocs\php10\mail.php on line 11 エラー:送信に失敗しました 参考本に書いてあるとおり、 php.iniのSMTP=localhost を自分が使っているoooooo@ocn.ne.jpに書き換え、sendmailには自分の別アドレスを記述したのですが。 11行目のエラーも何を指しているのかわかりません。 ご回答よろしくお願いします。 【mail.php】 <html> <head><title>mail.php</title></head> <body> <?php $address=$_POST['address']; $subject=$_POST['subject']; $message=$_POST['message']; $header="Content-Type:text/plain;charset=iso-2022-jp"; mb_language("Japanese"); if(mb_send_mail($address, $subject, mb_convert_encoding($message,"JIS","EUC-JP"),$header)){ print("送信完了しました。"); }else{ print("エラー:送信に失敗しました"); } ?> </body> </html> 【mail_form.html】 <html> <head><title>メールの送信</title></head> <body> <h2>メールの送信</h2> <form action="mail.php" method="post"> 宛先:<input type="text" name="address"><br /> 件名:<input type="text" name="subject"><br /> 本文:<br /><textarea name="message" rows="5" cols="30"></textarea><br /> <input type="submit" value="送信"> </form> </body> </html>

    • ベストアンサー
    • 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でメールが送信できない

    弊社でお客様のお問い合わせフォームをPHPで作成しているのですが、 お客様の環境でメールを送信することができません。 サーバー環境は以下の通りです。 Red Hat Linux 2.6.9 Apache/2.0.52 PHP 4.3.9 原因の調査で以下のようなチェックを行いました。 【お客様に御願いしたチェック】 1. サーバーでsendmailコマンドを利用してメールが送れるか? 送ることができる。 正しくキューイングされ、送信されることまで確認OK 2. php.iniのsendmail_pathの確認 sendmail_path は /usr/sbin/sendmail -i -tになっている。 /usr/sbin/sendmailはちゃんとある 3. mail()が使えないPHP /usr/sbin/sendmail,/usr/lib/sendmailがなければmail()が使えないPHPがビルドされるケース。 標準のPHPを利用しているので、問題ない。 【弊社が担当したチェック】 1. メールを送信するPHPスクリプトの不具合 PHPスクリプト自体は正常に動作する。 php.iniのdispaly_errorsをONに変更してもエラーメッセージはでない。 2. 簡単なmail()関数を使用したチェック 以下のようなphpスクリプトで確認。 OKがブラウザに表示される。 <?php if (mail("私のメールアドレス", "テスト", "テスト本文", "From:私のメールアドレス")) { echo "OK"; } else { echo "NG"; } ?> 何か原因があるのでしょうか? どなたか教えてください。

    • ベストアンサー
    • PHP

専門家に質問してみよう