メールが届かない?sendmailの原因と対策方法

このQ&Aのポイント
  • メールが届かない?sendmailを使ったときの問題と解決策
  • CGIから送信したメールがSPAM扱いされる原因とは?
  • メールが返ってくる理由とsendmailの設定方法
回答を見る
  • ベストアンサー

SPAM?としてメールが届かないの?sendmailが原因?

教えてください。使っているLinuxサーバ側に問題があるだと推測してここへ書き込みます。(間違っていたらスミマセン)最近CGIからsendmailで送ったメールが相手側のメールサーバにはじかれて帰ってきてしまいます。最初はCGI側の問題だと思い色々と修正を試みましたが回復しませんでした。ネットで色々と調べているうちに”SPAM対策”としてドメインなどを指定することによりメールを受け付けない設定があることを知りました。そこで帰ってきてしまっているメールのヘッダを調べると共通点がありそれが原因ではじかれていると予想しました。普通にメールを送ったときと、sendmailを使ったときの違いは ”Received: (from shop@localhost)”部分と ”Message-Id: <00000000000@localhost>” が違っています。エラーで戻された理由が”Real domain name required for sender address”でしたので存在しないタイプのメールアドレスから送られたメールはSPAMとして受け取らないように設定されていると予想しました。 もしその推測が正しければ、どうすればこのような状況を回避できるのか教えてください。CGI側ではこれ以上設定する箇所が見当たらなくメールサーバ側で何かしないといけないんでしょうか?

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

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

解決したようで良かったですね。 # -t ではなく、-f でしたね。すいません。 なお、メールの送信者のアドレスチェック(正確にはドメインチェック)を行っているのは Biglobe に限った話ではありません。最近のメールサーバソフトにはその手の機能が大抵付いていますので、CGI といえどもキチンと対応しないと送れない宛先がいくらでも出てきます。 あと、-f でアドレスを指定すると、エラーが発生した場合でもそのアドレスにエラーが返ってくるようになります。もしあなたの CGI が個人情報を含んでいるようなメールを送っているのであれば、-f をつけずに送ったメールがエラーになった場合、大抵はそのサーバの管理者宛に届いてしまいます。怖いですよね ^^;)。

localhost
質問者

お礼

ありがとうございました。一応ファイルを変更して見ましが、まだそのSPAM対策されたアドレスからメールが入ってないため確認ができていません。ちなみに帰ってきたメールを確認するとOCNやDIONも同じように対策されてました。(yahooやmsnは未対策)

その他の回答 (1)

回答No.1

CGI からどうやってメールを送信していますか? もし sendmail コマンドを使っているのであれば、-t オプションを使ってますか? いずれにせよサーバではなく CGI 側の問題でしょう。適切にコードを書けば大丈夫だろうと思います。

localhost
質問者

お礼

早速アドバイスありがとうございました。利用しているサーバ管理者より以下のアドバイスをいただいたので、それでCGIを修正し結果待ち状態です。 if (!open(MAIL,"|$sendmail $email")) { &error; }を if (!open(MAIL,"|$sendmail -f $myaddress $email")) { &error; }。今日もう一つ判明したのがBIGLOBEは今年<2005・7>からSPAM対策として送信元のアドレスをチェックしているそうです。これに引っかかってしまったと思われます。明日同じようなSPAM対策を行っているDIONにsendmailを使い送信してテストしてみたいと思います。

関連するQ&A

  • sendmailでメールが送れない

    Linuxのsendmailにてメールが送れません。似たような質問は、他の方もされていますが、私の場合と異なるため質問させていただきます。 Linuxの書籍などをみると、  受信:ドメインの設定が必要  送信:ドメインの設定は必要なし となっています。 しかし、実際にmailコマンドにてメールを送信すると、メールのログにはエラーがあり送信できません。 (同一マシンでも、ネットワークを介して別なマシンでも) <user1@localhost.localdomain>... Real domain name required for sender address このメッセージをみるとドメイン名が必要と思われるのですが、実際にドメイン設定なしで、メールを送ることが可能なのでしょうか。また、可能だとすると何か別な設定が必要なのでしょうか。 以上、わかる方がおりましたら、ご教授お願い致します。

  • メールフォームからスパム

    私が使うドメインから、スパムが大量に発信されている、至急調査した方が良い、という警告をフォームメールから受けました。 レンタルサーバーに問い合わせたところ、警告されているようなメールアドレスやスパム送信の履歴はないとのことでした。 フォームメールのCGIを踏み台にして、そのようなスパムをばらまいているのではないかという見解をレンタルサーバー側はしています。 しかし、フォームメールはスパム防止のための受信専門で設置した物です。そのような事が出来るとはとうてい思えないのですが。。。 警告には氏名、連絡先等の記載は書いていないので、連絡の鶏用がありません。こういう場合はいったいどうしたら良いのでしょうか。 本当にスパムを所有ドメインを使って発信しているのであれば、申し訳ないので改めたいと思って居ます。

  • xamppとsendmail設定とmailについて

    どなたか、下記の内容で解決に導いてくれる方、居られたらと思い 質問させて頂きました。 xampp1.7.1をインストール osはwindowsxpです。 設置した、cgiやphpからのメールについてなんですが、 php.iniの [mail function] ; For Win32 only. ; http://php.net/smtp ;SMTP = localhost ←コメントアウトする ; http://php.net/smtp-port ;smtp_port = 25 ←コメントアウトする sendmail_path = "\"\xampplite\sendmail\sendmail.exe\" -t" のsendmailのパスのコメントアウトだけをはずしました、 それと sendmail.iniの [sendmail] セクション smtp_server= プロバイダのSMTPサーバ名 smtp_port=587 smtp_ssl=auto default_domain= プロバイダのメールドメイン auth_username= プロバイダのメールアカウント auth_password= 上記メールアカウントのメールパスワード force_sender= 上記アカウントのメールアドレス hostname= test 上記を設定 MarcuryMailでは ・Marcury Coreモジュール DDNSでの設定ドメインを設定。例abc.net ・MarcuryS SMTP abc.netの追加とポート587、smtp-authの設定 ・MarcuryP POP  ユーザーの追加 (例 test@abc.net test2@abc.net ) ・MarcuryC SMTP relaying client プロバイダのsmtpホスト、ポート、smtp認証の設定 の3つのプロトコルモジュールを設定 それから、apacheのルートディレクトリにテストで、  (ServerName abc.net:80)を設定しています。 cgiとphpの各メールフォームを設定しました。(その他にも設置していますけど。。。) 各メールフォームのメール送信元を test@abc.net を設定。 ここからなんですが。。。 ローカル内のクライアントPCのoutlookで test2@abc.net のアカウントを追加、 自分宛てに(test2@abc.net)にメールを送ってみる、正常に届いた。 ローカル内のクライアントPCからの接続で、 cgiとphp共に、アクセスしてsendmailの送信テストを行う、、、 アクセスしたForm画面の、メールアドレスに test2@abc.net を入力して 送信しても、メールが来ない、、、 試しに、再度アクセスしたForm画面の、メールアドレスに サーバーに関連していないドメイン(プロバイダやyahoo,Gmailなどのメールアドレス) を入力して送信すると、正常に届きます。 上記の内容で、sendmailを使ってメール送信した際に、 どうしてMarcuryMailで追加した、ドメイン名でのメールアドレスには メールが来ないのか解りません。。。 どなたか、解決に導いてくれる方、居られませんか。。。 よろしくお願いします。 ------------------------------------------ 上記の内容をまとめました。 ↓↓↓ ●MarcuryMailにabc.netを追加 ●MarcuryMailでアカウント、test@abc.net test2@abc.net を追加 ●php.ini と sendmail.ini を設定 ●apacheのルートディレクトリに、cgi と php のテスト用mailformを設置 ●mailformスクリプトの、送信元メールアドレスに test@abc.netを設定 ●テストでローカル内のクライアントPCのoutlookに test2@abc.net を追加   outlookで test2@abc.netにメール送信、無事メールが届く。 ●設置している、cgiとphpのmailformにアクセス、フォーム画面のメールアドレス欄に、   test2@abc.netを入力後送信してもメールが来ない。 ●再度、設置している、cgiとphpのmailformにアクセス、フォーム画面のメールアドレス欄に、   サーバーに関連していないドメイン(プロバイダやyahoo,Gmailなどのメールアドレス)   を入力して送信すると、正常に届く。 ---------------------------------------------- その他機能は正常に動作しています、その他設置済みのwordpressなど。。

  • spamメール

    以下サーバの運用を行っております。 OS:RedHatLinux MTA:qmail 最近SPAMメールが増加しており困っております。 そこで、相手IPアドレスをブラックリストでフィルタしようと考え調べたところ、『form:』ヘッダ、相手側が残した『Received:』ヘッダは信用できない(偽造されている)ため、自サーバが残した『Received:』ヘッダより相手側の送信サーバのIPアドレスを調べるのがよいということがわかりました。しかし、qmailの『Received:』ヘッダに情報(相手IPアドレス)が残っていないようです。 以下質問させていただきます。 1、qmailで送信元のメールサーバIPアドレス(名前)はどうのように調べればよいでしょうか? 2、qmailは相手側ヘッダ情報が残らないような仕様なのでしょうか? 受信したヘッダは以下になります。 Return-Path: <****@yahoo.co.jp> Received: (qmail 15907 invoked from network); 4 Jan 2007 17:59:10 +0900 Received: from remotehost (HELO mail.○○○.co.jp) (127.0.0.1) by localhost with SMTP; 4 Jan 2007 17:59:10 +0900 Received: (qmail 2864 invoked from network); 4 Jan 2007 17:59:09 +0900 Received: from unknown (HELO ○○○.co.jp) (123.69.41.98) by 0 with SMTP; 4 Jan 2007 17:59:09 +0900 To: <○○○○@○○○.co.jp> From: =?iso-2022-jp?B?GyRCMHxzU0U0RjsjMCM3IzIbKEI=?=<****@yahoo.co.jp> Subject: =?iso-2022-jp?B?GyRCMHxzUyRKQCQzJiQsO08kXiRqJF4kORsoQg==?= MIME-Version: 1.0 Reply-To: <*****@yahoo.co.jp> Content-Type:text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit >Received: (qmail 2864 invoked from network); 4 Jan 2007 17:59:09 +0900 この部分が受信側が残した信用できるヘッダ情報みたいなのですが、相手側サーバのIP、コンピュータ名等が残っておりません。

  • sendmailからリモートに送りたいのに、ローカルに届く。。。

    あるネットワーク(ドメイン名domain.ne.jpとします)上にhostA,hostBの2つのサーバがあります。 DNSは、@domain.ne.jp のアドレスに送られたメールはhostA.domain.ne.jpに投げるように設定されているようです。 いま、hostBでsendmailを使って、hogehoge@domain.ne.jpにメールを送ろうとしたのですが、 hostAのspoolにメールが溜るのではなく、hostBのspoolにメールが溜ってしまっています。 sendmailが、ローカル宛てのメールだと勘違いしてしまっていることが 原因だと思われるのですが、sendmailの設定でどうにかなるものでしょうか? ちなみに、DNSやhostAは触れないんです。。。 よろしくお願いします。

  • centos5でsendmailのエラー

    WebARENA SuitePROV2でCentOS5を運用しています。 メールはgoogle appsを利用しているので、Centosはウェブサーバー専用(apacheとmysql)にしていました。 しかしウェブサイトにフォームメールを導入することになったため 今まで停止していたsendmailを起動し、chkconfigで自動起動設定をonにしましたが maillogにエラーが発生してしまい送信メールが届きません。 [maillogのエラー] localhost sendmail[23590]: n6CANlqW023590: n6CANlqX023590: DSN: Service unavailable localhost sendmail[23590]: n6CANlqX023590: to=apache, delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=32378, relay=[127.0.0.1], dsn=5.0.0, stat=Service unavailable localhost sendmail[23590]: n6CANlqX023590: n6CANlqY023590: return to sender: Service unavailable localhost sendmail[23590]: n6CANlqY023590: to=postmaster, delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=33402, relay=[127.0.0.1], dsn=5.0.0, stat=Service unavailable localhost sendmail[23590]: n6CANlqX023590: Losing ./qfn6CANlqX023590: savemail panic localhost sendmail[23590]: n6CANlqX023590: SYSERR(apache): savemail: cannot save rejected email anywhere googleで調べてみると「管理者用のメールアドレス(postmaster)へ送られてくるメールが実在する宛て先へ届くように設定されていない」のが原因らしいのですが、どのように設定するのか分かりませんでした。 http://www.ssl.fujitsu.com/products/network/netproducts/sendmail/faq/faq1-32.html また、全く関係ないかもしれませんが、/etc/hosts には 127.0.0.1 localhost.localdomain localhost とありました。 /etc/hostsは下記のように変更した方がよいのでしょうか? 127.0.0.1 localhost.localdomain localhost ↓ 127.0.0.1 localhost.自ドメイン.com localhost よろしくお願い致します。

  • sendmailでメール送信ができない

    ラピッドサイトのRVカスタムシリーズというサーバーを借りています。 ドメインの切り替えはまだ終わっていません。 このサーバー内にメール送信フォームを設置しました。 (フォームに内容を入力すると、送信者、管理者の両方にメールが届くしくみ) このCGIは以前別のサーバーで使用していた物の流用です。 CGIは問題なく稼働しているようで、送信ボタンを押すとサンクス画面が出て処理が終了します。 しかし肝心のメールが届かず、サーバー管理者の元にエラーメールが届いていました。 =======以下メール======== The original message was received at Thu, 7 May 2009 16:23:51 +0900 from localhost with id n477NnNN009359 ----- The following addresses had permanent fatal errors ----- apache (reason: 553 5.3.0 <apache@●●●.com>... User unknown) (expanded from: apache) ----- Transcript of session follows ----- ... while talking to [127.0.0.1]: >>> DATA <<< 553 5.3.0 <apache@●●●.com>... User unknown 550 5.1.1 apache... User unknown <<< 503 5.0.0 Need RCPT (recipient) The original message was received at Thu, 7 May 2009 16:23:49 +0900 from apache@localhost ----- The following addresses had permanent fatal errors ----- ■■■@▲▲▲.com (reason: 553 5.3.0 <apache@●●●.com>... User unknown) (expanded from: ■■■@▲▲▲.com) ----- Transcript of session follows ----- ... while talking to [127.0.0.1]: >>> MAIL From:<apache@●●●.com> SIZE=1463 AUTH=apache@●●●.com <<< 553 5.3.0 <apache@●●●.com>... User unknown 501 5.6.0 Data format error ~略~ フォームの内容 ========================= 今までに出たことのないエラーで対処に困っています。 問題解決のアドバイスをお願いします。 サーバーのドメインが切り替わっていない事は関係ありますでしょうか。 あるいはsendmailで設定しなくてはいけない項目があるのでしょうか。 今までは既に設定がされている環境でCGIを設置しただけなので、どこを見ていけばよいのかさっぱりなのです。 よろしくお願いします。

    • 締切済み
    • CGI
  • sendmailを使わないで送れるメールフォームを探しています。

    自宅サーバーでサイトを公開しているのですがsendmailが使えません。 あちこち探したのですが、配布されているメールフォームCGIはほとんどがsendmailを使うものでした。 次のようなメールフォームCGIをご存知の方よろしくお願いします。 (1)sendmailを使わないでプロバイダ(OCN)のメールサーバで送る (2)投稿者に自動返信ができる (3)送信先のアドレスが複数指定できる (4)添付ファイルが複数送れる (5)必須入力項目のチェックができる 勝手なことばかり申しますがよろしくお願いします。

    • ベストアンサー
    • CGI
  • sendmailで外部メールアドレスとやり取りするには

    現在turbolunux6.5によりsendmailの設定をしている所です。 一通りの設定はなんとかで来ました。 しかし、外部(ローカルネットワークではなく)とのメールのやり取りがうまく出来ません。 2冊ぐらいの参考書を買いあさっては、調べ、の作業を繰り返しています。 その中で怪しい設定方法があったのですが、詳しく書かれていないため見よう見まねでやってみた所特に変化が在りません。 作業的には、 sendmail.cf の中を覗き #C[ClientDom] localhost #C[ClientDom] my.client.domain #F[ClientDom] -o /etc/sendmail.clientdomain の所を #C[ClientDom] localhost #C[ClientDom] my.client.domain F[ClientDom] -o /etc/sendmail.clientdomain にしました。(一番下の#をはずしました。) 次に#をはずしたファイル先に sendmail.clientdomain を作り、その中に ALL ALL ALL としました。 これで外部にメールを送る試みをしましたが、 メールが送られませんでした。 送る側では特にメールが返ってくるわけでもなく 行きっぱなしの状態です。 しかし受信側はメールが届いている様子が在りません。 どうか教えて頂けませんでしょうか? お願します。

  • sendmailの設定について

    sendmailを久々に設定することになりまして mcの設定項目について質問させてください。 ○環境 OS Redhat ES 4 バージョン sendmail 8.13 内部PC → メールサーバ→ インターネット ○したいこと (1)内部PCからメールサーバにメール送信する際に  Fromアドレス(エンベロープ含む)がroot や user等の  @以降がないローカルバート部分のみの場合に  内部PCからのメール送信をメールサーバが拒否しないようにしたい (2)1を外部に配送する際にローカルバート部分だけの    fromメールアドレスにドメインを付与したい    ただし、fromのメールアドレスがローカルバート部分だけ等の    メールアドレスとして不完全な状態でなければドメイン付与はおこなわない    (付与したいドメインと違うドメインがfromアドレスに    あったとしてもメールアドレスとして問題なければ    ドメイン付与はおこなわない) 以上よろしくお願いします。