• ベストアンサー

mail関数に送信について

環境  RedHatLinux 9  APACHE 2.0.48  PHP 4.3.4 まず、PHPの質問ではないかもしれませんがご容赦ください。 PHPからmail関数(またはmb_send_mail関数)にてメールを出力すると、 送信先のアドレスによってメールが届いたり届かなかったりします。 詳しく説明すると、自分の会社のアドレスには届かず、 自宅でのインターネット接続の際のプロバイダ契約時に頂いた 個人用のメールアドレスには届くようです。 なぜ、そのような現象が起こっているかが分からず、1週間近く悩んでいますが、 一向に解決できていません。 いままで似たような現象が発生した方、または何となく理由がわかる方、 ヒントとなるような内容が少しでも良いので、よろしくお願いします。

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

  • ベストアンサー
  • EEshiba
  • ベストアンサー率29% (45/152)
回答No.4

今頃になってしまいましたが、業務で調べる必要があり、一応送信できたので、お知らせします。 以下の様に、-fオプションを使用することで、送信できなかったアドレスにも送信できました。なお、root@***.comは存在するメールアドレスであれば良いはずですが、ウチでは、rootしか無かったので、これ以外は試していません。詳細は参考URLの-fの項を見て下さい。 mail("nnn@***.com","test","testmail","From: zzz@y**.com ,"-froot@***.com");

参考URL:
http://www.linux.or.jp/JM/html/sendmail/man8/sendmail.8.html
y_an
質問者

お礼

こちらこそ回答が今頃になってしまいましてすいません^^; 諸事情により確認が取れなかったのですが、確認できました。 こちらでも-fオプションでうまくいきました。 本当にありがとうございました。_(_^_)_

その他の回答 (3)

  • EEshiba
  • ベストアンサー率29% (45/152)
回答No.3

社内にあるlinuxのサーバーからmail()を使用してメールを送ってみましたが、確かに送信できない宛先があるようです。 デーモンからのエラーメールや、sendmail関連でいくらか調べてみた所、スパム対策として受信側のMTAの設定で受信が拒否されているらしいという事まではわかりました。 ただ、それ以上の事はsendmailの設定の話になり、正直なところ、僕自身もよくわかりません。 どうしても解決する必要があるのであれば、今回の現象とデーモンからのエラーメールの内容を、sendmailやq-mailなどのMTA関連の掲示板などに投げてみれば、解決策を教えてもらえるのではないかと思います。 以上、中途半端ですが、参考になりましたでしょうか。

y_an
質問者

お礼

試しまでして頂いてありがとうございます。 そんな気がしていましたがやっぱりPHPの問題ではないのですね・・・^^; Linuxは初心者でまだ分からない事が多いですが、 言われた通り、MTA関連の方で調査・質問をしようと思います。

  • EEshiba
  • ベストアンサー率29% (45/152)
回答No.2

ソースの内容やサーバの設定などが不明なので、思いついた事だけですが、Fromなどを正しく設定していないのでは無いでしょうか? そのために会社のメールサーバーには弾かれてしまっているのでは?

y_an
質問者

お礼

回答ありがとうございます。 > Fromなどを正しく設定していないのでは無いでしょうか? これは知識不足で可能性としてはあると思います。 しかし、何が正しくて何が正しくないかの判別がつかないもので・・・。 例えばどのようなケースがあるでしょうか?

y_an
質問者

補足

ソースですが、以下の通りです。   mail("会社のメールアドレス","testsubject","teststatement","from:送信元メールアドレス") 上記アドレスは別々にし、存在しているものを利用しています。 mail("個人のメールアドレス","testsubject","teststatement","from:送信元メールアドレス") この場合はうまくいきます。 設定ですが、PHP.INIのメールに関する設定はどこかのサイトを参考に 以下の通りにしています。 ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). sendmail_path = /usr/sbin/sendmail -t -i

  • kalze
  • ベストアンサー率47% (522/1092)
回答No.1

RedHat9マシンがクラッシュしてから、 実験用マシンの構築をサボっているので、 確認しておりませんが、 まったく同じようにして送信先メールアドレスだけ変更して、お書きになっている状況と仮定します。 1.カーネルのECNオプションが有効になっているが、会社のメールサーバまでのネットワーク上にECNオプションに対応していない機器がある。 2.会社のメールサーバに受け取りを拒否する設定がなされている 3.文字コードがおかしい とりあえずぱっと思いつくところではこのあたりでしょうか。 ちょっとそれ以上はソースみてみないとなんともというところです

y_an
質問者

お礼

回答ありがとうございました。 返事が遅くなりました。 ごめんなさい_(_^_)_ 1についてはどっかのサイトで調べて確認したところ、0となっていたので、 多分無効になっていると思います。 2については、メールサーバ自体がホスティングのサービスを利用しており、 基本的には何もしていないのですが、ホスティング会社の基本機能として、 なにかをしているかもしれませんので、調査中です。 3については特に文字化け等もしていませんので、大丈夫かと思うのですが、 微妙に自信がありません。

y_an
質問者

補足

ちなみに個人のアドレスに送った際にちゃんと届いた場合のメールの ヘッダーは以下の通りになっています。 (ドメイン等は伏せさせて頂きます。) 以下の内容はPHPのmb_send_mail関数にて送信された内容です。 Return-Path: <nobody@****.**.jp> Received: from localhost.localdomain ([XXX.XXX.XX.XX]) by XXXX.XXXX.XX.jp with ESMTP id <20040524093633.DVUO27435.XXXX.XXXXX.XX.jp@localhost.localdomain> for <sm-test@XXXXX.XXXXX.XX.jp>; Mon, 24 May 2004 18:36:33 +0900 Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by localhost.localdomain (8.12.8/8.12.8) with ESMTP id i4O9VTZn032132 for <sm-test@XXXXX.XXXXX.XX.jp>; Mon, 24 May 2004 18:31:29 +0900 Received: (from nobody@localhost) by localhost.localdomain (8.12.8/8.12.8/Submit) id i***VOD9032130; Mon, 24 May 2004 18:31:24 +0900 Date: Mon, 24 May 2004 18:31:24 +0900 Message-Id: <200405240931.i***VOD9032130@localhost.localdomain> To: sm-test@*****.****.**.jp Subject: お知らせ from: XXXXX@****.XXXXX.XX.jp Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit

関連するQ&A