メールのリレーについての設定とテスト結果について

このQ&Aのポイント
  • sendmail R8におけるメールのリレー設定について、sendmail.defファイルおよびsendmail.staticrouteファイルを使った設定方法を説明します。設定した場合にテストを行った結果、特定のアカウントのみローカル配送することも可能です。
  • sendmail R8におけるメールのリレー設定について、sendmail.defファイルとsendmail.staticrouteファイルの設定内容を具体的に説明します。また、テスト時の結果も示し、特定のアカウントのみローカル配送する方法についても述べます。
  • メールのリレー設定において、sendmail R8のsendmail.defファイルとsendmail.staticrouteファイルの設定方法を紹介します。また、テスト結果についても説明し、特定のアカウントのみローカル配送する方法についても解説します。
回答を見る
  • ベストアンサー

メールのリレーにつきまして

sendmail R8 におきまして sendmail.def の設定を MY_DOMAIN=dom1.com DIRECT_DELIVER_DOMAINS=none STATIC_ROUTE_FILE=/etc/mail/sendmail.staticroute DEFAULT_RELAY='smtp:gw1.dom1.com.:gw2.dom1.com.' とし、sendmail.staticrouteの設定を GW smtp: gw1.dom1.com.:gw2.dom1.com. DOM dom1.com DOM dom2.com とした場合 sendmail -bt -C sendmail.cf にてテストすると 3,0 hoge@dom1.com -- 中略 -- rewrite: ruleset 0 returns: $# local $: hoge となるのは、当たり前なのでしょうか? STATIC_ROUTE_FILEを使用した場合、自ドメインのメールをローカル配送しない設定は不可能なのでしょうか また可能な場合、特定のアカウントのみローカル配送するといった事は可能でしょうか なにとぞ宜しくお願い致します

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

  • ベストアンサー
  • ita3
  • ベストアンサー率67% (25/37)
回答No.2

OFFICIAL_NAMEを定義しないとどうなりますか? こちらでは、MY_DOMAIN=dom1.com で、OFFICIAL_DOMAIN を定義しない場合は、smtp配送に行くようです。 この時、ACCEPT_DOMAINは、定義無しです。 また、OFFICIAL_DOMAIN='dom1.com'のようになって いると、当然 local配送されてしまいます。 OFFICIAL_DOMAIN='gw1.dom1.com' でも同様です。 環境が何か違っているのでしょうか・・・

kasago
質問者

補足

>>MY_DOMAIN=dom1.com で、OFFICIAL_NAME を定義しない場合は、smtp配送に行くようです。 >>この時、ACCEPT_DOMAINは、定義無しです。 そうですか。今は自宅ですので(レポートを書く為の技術資料を読まなければいけないものでして...) 明日会社に行って早速実験してみます 有り難うございました

その他の回答 (2)

  • ita3
  • ベストアンサー率67% (25/37)
回答No.3

すみません、下は、 s/OFFICIAL_DOMAIN/OFFICIAL_NAME/g で、読み替えてください。

kasago
質問者

お礼

確認しました ACCEPT_DOMAINが大きなヒントになりました ACCEPT_ADDRSをACCEPT_ADDRS='$m'と定義していました。これを外したところ、SMTP配送となりました ・結論としてメールをローカルドロップしたくない設定は MY_DOMAIN=設定可 OFFICIAL_NAME=設定可 ACCEPT_ADDRS=設定不可 ・必須パラメータは DIRECT_DELIVER_DOMAINS=none DEFAULT_RELAY='配送先' でした。 勉強になりました。本当に有り難う御座いました

  • ita3
  • ベストアンサー率67% (25/37)
回答No.1

DEFAULT_RELAY='smtp:gw1.dom1.com.:gw2.dom1.com.' という設定と、sendmail.staticrouteの中身が同じなので、現在の設定では、STATIC_ROUTE_FILEが意味がないように思います。 こちらの8.9.3+CF-3.7Wpl2で、同様の試験をしてみたところ、 /usr/sbin/sendmail -bt -C./okweb.cf ----- >3,0 ita3@dom1.com ---- rewrite: ruleset 0 returns: $# smtp $@ gw1 . dom1 . com . : gw2 . dom1 . com . $: ita3 < @ dom1 . com > > のように展開されました。 もしかて、ACCEPT_ADDRESS が定義されてるってことはないでしょうか。 もし、定義されていないのであれば、ちょっと反則ですが MY_DOMAINを hoge.dom1.com とか、hoge.com みたいに、 localで受けとってしまう以外のドメインを定義してしまえばいいかと思います。 特定のアカウントのみのローカル配送は、私自身は設定と メンテナンスがやっかいなのでやったことはありませんが MANUAL.jpnの USERTABLE_MAPS=<ドメイン名=タイプ:データベース:フラグ> (複数記述可能) の辺りが参考になるかもしれません。

kasago
質問者

お礼

アドバイス有り難う御座います 同様の設定で、きちんとSMTP配送されるのですか...結構ショックです。 STATIC_ROUTE_FILEはDEFAULT_RELAYが効き目が無かったので駄目押しでつけてみましたが、やはりそれでも駄目でした。 ACCEPT_ADDRESSは定義していたかどうか..確認します。 MY_DOMAINに虚偽の記述をしてみたところ、おっしゃる通りにデバッグレベルでSMTP配送はされるのですが 実際の配送レベルでは、しっかりとエンベローブにMY_DOMAINが記述されるので、具合が悪いんですよね でも、それはひょっとしたらMY_DOMAINを定義しないで、OFFICIAL_NAMEをきちんと定義すれば良い!。という事になるのでしょうか? メールは中継経路が複雑になると設定がとても難しいですね。いつもMANUAL.jpnを読んでは試行錯誤しています。 こうもりの本も読みますが、私のような駆け出しメールサーバ管理者にはきついものがありますね(笑)。 これからも度々ここに問い合わせすると思いますが、宜しくご指導願います。 有り難うございました

関連するQ&A

  • SENDMAILリレー設定

    私はRedhatlinux7.3を使ってSENDMAILでサーバを立ててみようと思っております。 SENDMAILのバージョンは8.11.6です。インストールそのままです。 POPにつきましては、POP3を起動させることができ、受信はうまくいきました。 SMTPにつきましては特にSENDMAILの設定をせずメールを送ってみると以下のようなメッセージが出てきました。 550 5.7.1 <user@domain.jp> Relaying denied. IP name lookup failed [192.168.0.11] これはIPアドレスが許可されていないのだと思z、/etc/mail/relay-domainsに192.168.0を入れて見ると送信が可能になりました。 実は私がやりたいことはまったく他のネットワークからこのSMTPを使いたいと考えております。もちろんIPは決まっておりません。 送信者のアドレスが特定ドメインのメールのみSMTPリレーをしたいと思っているのですがどのような設定をすれば良いのかをご教授していただければと思います。また、バーチャルドメイン環境も作成してみたいと思ってます。 現在のところrelay-domainsを空欄にしてaccessにリレーしたいドメイン RELAYと設定してみましたが同様のエラーがきました。

  • qmailでSMTPリレーを防ぐには

    いつも質問してばかりですみません。。。 qmailでSMTPリレーを防ぐには、どうしたら良いのでしょう? tcpserver や inetd では、接続そのものが拒絶されてしまい、 宛先が自ドメインのメールを受取れないことになってしまいます。 以前のsendmail使っていた時は、CFを使って MAIL_RELAY_RESTRICTION=yes LOCAL_HOST_DOMAIN=/etc/mail/sendmail.localdomain という指定でSMTPリレーを防止していました。 つまり、 From: To: (あるいは RCPT:) フィールド両方が他ドメインの場合は、rejectする設定にしたいのです。 参考になるURL情報でも頂けると助かります。よろしくお願い致します。

  • ruby(cgi)からメールが送信できない

    require "nkf" require "net/smtp" sendmail('local', 'title', output, 'admin@hoge.co.jp', "hoge@hoge.co.jp") とすると、正常にメールがhoge@hoge.co.jp宛に送信されます。 require "nkf" require "net/smtp" sendmail('local', 'title', output, 'admin@hoge.co.jp', $mail) ※$mailには"hoge@hoge.co.jp"が格納されています。 こうするとメールが送られて来ません。 問題はどこにあるのでしょうか?

  • リレーができない

    sendmailを立ち上げて内部からmailコマンドで外部にメールを送れることはできるようになったのですが、今度はクライアント側(別ネットワーク)からメールを送信したいのですが、できません、サーバ側もクライアントソフト(Ol)側もPOP認証の設定はしてません、POPサーバーも立ち上げてません、サーバにドメインは付与されてません、 ***ログ↓**************************************** Oct 20 09:35:08 localhost sendmail[4346]: j9K0Z8bP004346: ruleset=check_mail, arg1=<root@localhost.localdomain>, relay=r-20x-14x-xx3-1xx.xxxmufa.jp [20x.14x.xx3.1xx], reject=553 5.5.4 <root@localhost.localdomain>... Real domain name required for sender address Oct 20 09:35:09 localhost sendmail[4346]: j9K0Z8bP004346: from=<root@localhost.localdomain>, size=0, class=0, nrcpts=0, proto=SMTP, daemon=MTA, relay=r-20x-14x-xx3-1xx.xxxmufa.jp [20x.14x.xx3.1xx] ************************************************ mcファイルには dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA') FEATURE(`always_add_domain')dnl FEATURE(`access_db', `hash -T<TMPF> /etc/mail/access')dnl として、sendmail.cfに変換してあります。 accessファイルには localhost.localdomain RELAY localhost RELAY 127.0.0.1 RELAY 192.168.0 RELAY 192.168.1 RELAY 20x.14x.xx3.1xx  RELAY にしてあります。 どこかおかしいところありますでしょうか? 逆に不正中継を許す設定方法も教えてもらえると解決に近づくかもしれません

  • sendmail 8.12.2の設定

    環境: Solaris 9(SPARC) sendmail 8.12.2 メールHUBにメールを送信するためsendmailの 設定をしております。 動作としては 自サーバからメールをhubに送信して、外に出して もらい、受信は一切行わないといった内容です。 メールが飛ぶとこまでの確認はしました。 /etc/hostsに以下をエントリ smtpサーバipアドレス #tab #tab smtp-server 次に /usr/lib/mail/cf/sendmail.mc を修正 -------------------------------------------- divert(0)dnl VERSIONID(`@(#)main.mc 1.5 (Sun) 08/10/00') OSTYPE(`solaris8')dnl define(`MAIL_SETTING_DIR',`/etc/mail/')dnl Dwホスト名 Dmドメイン名 define(`confDOMAIN_NAME',`$w.$m')dnl FEATURE(`accept_unresolvable_domains') define(`SMART_HOST',`smtp:smtp-server')dnl MASQUERADE_AS(`$m')dnl FEATURE(`masquerade_envelope')dnl DOMAIN(`solaris-generic')dnl MAILER(`local')dnl MAILER(`smtp')dnl -------------------------------------------- # make sendmail.cf # cp sendmail.cf /etc/mail # pkill -HUP sendmail # mailx メールアドレス subject aa bb . EOL この設定でメールは届きます。 ここからが質問なのですが、マスカレードを設定 したはずなのに、送信者のアドレスが root@ホスト名.ドメイン名 のままで届きます。 これを指定したアドレスにしたいのですがどのように 設定すればよろしいでしょうか? root@ホスト名.ドメイン名 → test@ドメイン名

  • qmail(vpopmail)でのエラー(locate)

    こんばんわ。 OS:Fedora7 qmail+vpopmail 少しおかしな現象が出てるので、 質問させてください。 多数のドメイン使ってるためにドメインを作ると /home/vpopmail/domains に数字のディレクトリが作成され、 その中に.qmail-defaultが作成されます。 バーチャルドメインを作る際に、 #/home/vpopmail/bin/vadddomain hoge.com #vi /home/vpopmail/domains/3/hoge.com/.qmail-default | /var/qmail/bin/fastforward -p -d /etc/aliases.cdb | /var/qmail/bin/dot-forward `/home/vpopmail/bin/vuserinfo -d $EXT@$HOST`/.forward | /home/vpopmail/bin/vdelivermail '' delete #/home/vpopmail/bin/vadduser info@hoge.com #/home/vpopmail/bin/vadduser test@hoge.com #/home/vpopmail/bin/vadduser goo@hoge.com としてメールアドレスを作成しますと。 test@hoge.com goo@hoge.com は問題なく送受信出来るのですが、info@hoge.com がエラーは出ませんが、送っても何も受信されません。 他のと何が違うのか、 #locate hoge.com で調べると /home/domains/hoge.com /home/vpopmail/domains/hoge.com しか出ません。 しかも、 /home/domains/hoge.com は存在しません。 /home/vpopmail/domains/hoge.com も本当は、 /home/vpopmail/domains/3/hoge.com に存在します。 普通は、locateで調べると、 /home/domains/ドメイン/.dir-control /home/domains/ドメイン/.qmail-default /home/domains/ドメイン/.vpasswd.lock /home/domains/ドメイン/info /home/vpopmail/domains/ドメイン /home/vpopmail/domains/ドメイン/.dir-control /home/vpopmail/domains/ドメイン/.qmail-default /home/vpopmail/domains/ドメイン/.vpasswd.lock /home/vpopmail/domains/ドメイン/info/Maildir /home/vpopmail/domains/ドメイン/info/Maildir/cur などが表示されるはずなのですが。。。 #view /var/log/maillog(結果 Jul 2 20:55:25 localhost qmail: 1214999725.675118 new msg 4981813 Jul 2 20:55:25 localhost qmail: 1214999725.675175 info msg 4981813: bytes 1365 from <test@hoge.com> qp 2531 uid 89 Jul 2 20:55:25 localhost qmail: 1214999725.678384 starting delivery 14: msg 4981813 to local hoge.com-info@hoge.com Jul 2 20:55:25 localhost qmail: 1214999725.678438 status: local 1/10 remote 0/20 Jul 2 20:55:25 localhost qmail: 1214999725.684726 new msg 4981814 Jul 2 20:55:25 localhost qmail: 1214999725.684783 info msg 4981814: bytes 1482 from <test@hoge.com> qp 2534 uid 89 Jul 2 20:55:25 localhost qmail: 1214999725.687971 starting delivery 15: msg 4981814 to local postmaster@localhost.localdomain Jul 2 20:55:25 localhost qmail: 1214999725.688026 status: local 2/10 remote 0/20 Jul 2 20:55:25 localhost qmail: 1214999725.688042 delivery 14: success: fastforward:_qp_2534/did_0+0+1/ Jul 2 20:55:25 localhost qmail: 1214999725.688056 status: local 1/10 remote 0/20 Jul 2 20:55:25 localhost qmail: 1214999725.688070 end msg です。 1、locateでしっかりとした位置が表示されるようにしたい 2、infoも送受信出来るようにしたい です。 宜しくお願いします。

  • メールリレーの仕組み

    メールの届く仕組みについて下記の通り認識しております。 user@from.jpからuser@to.jpへメールを送る場合 [クライアント(user@from.jp)](SMTP) -->[メールサーバ(from.jp)](SMTP) -->[メールサーバ(任意)] (SMTP) -->[メールサーバ(to.jp)](SMTP) -->[クライアント(user@to.jp)](POP) この届く経路でメールサーバ(from.jp)は どのような設定でメールサーバ(任意)を 選択しているのでしょうか? メールサーバが設定で選択されている場合、 どんな設定でを行っているのでしょうか? qmail sendmail postfixなどの 設定項目を教えていただけると助かります。 どうぞ宜しくお願いいたします。

  • sendmailで特定ドメインに送信できない

    いつもお世話になってます。 ・Aサーバー(192.168.65.170) ・Bサーバー(192.168.13.38) が存在し、両方にqmail、vpopmailがインストールされています。 このたび、AサーバーからBサーバーに移行を予定しておりますが、 現在はAサーバーのqmailが、fuga@hoge.comのSMTPを行っています。 そこで、BサーバーのPHPからメールを送信する際、他のドメインでは 正常に配信されますが、hoge.comへの配信ができません。 試しに、Bサーバーのsendmailコマンドがら実行してみました。 ◎届く echo "test" | /usr/sbin/sendmail -t -i fuga@domain.com ×届かない echo "test" | /usr/sbin/sendmail -t -i fuga@hoge.com maillogを確認したところ、どうやらBサーバーがローカルに配信して いるらしく、Aサーバーに配信していないようです。 (実際はvpopの設定が不完全で、ローカルでボックスに入らずに どこかに消えたか貯まっている模様) コマンドで以下の確認も行いましたが、正常にAサーバーに 向いています。 ◎正常 [www@B ~]$ nslookup mail.hoge.com Server: 192.168.65.153 Address: 192.168.65.153#53 Name: mail.hoge.com Address: 192.168.65.170 ◎正常 [www@B ~]$ telnet mail.hoge.com smtp Trying 192.168.65.170... Connected to mail.hoge.com (192.168.65.170). Escape character is '^]'. 220 mail.hoge.com ESMTP そこで質問ですが、BからAに配送するには ・sendmailコマンドの設定 ・qmailの設定 ・/etc/resolv.confの設定 あたりを変えれば良いのかな、と思ってはいるものの、 どこをどう変更すれば良いのか、ご教示ください。 補足: 負荷分散環境だったりと、実際はもう少し混み入って いますが、このあたりのレジュメはひとまずは不要かと 思い、入れておりません。 IP、ドメインは架空のものですが、A、Bが内部で繋がって いるのは同じです。セグメントの違いも問題ありません。 最終的にはBサーバーに統合されますので、現在の問題は 解決するかと思いますが、移行までは何とか凌ぎたいです。 よろしくお願いします。

  • sendmailで外部への送信不能

    こんばんは。 どうにもsendmailの動作が分からなかったので、質問させていただきます。 閉じたネットワークの中でsendmailを使ってメールサーバを構築しています。 受信にはdovecotを利用してます。(ちなみにOSはCentOS5.1です) 同一ドメイン内ですと送受信可能。 他ドメインに対しては受信のみ可能。 送信が不可能な状態にあります。 メールサーバのメールログは以下のとおりになっています。 /var/log/maillog ---------------------------------- Jun 23 18:57:00 host10 sendmail[3262]: p5N9uoUR003262: ruleset=check_rcpt, arg1=<xxx@dom100.com>, relay=host11.dom10.com [192.168.10.11], reject=550 5.7.1 <xxx@dom100.com>... Relaying denied Jun 23 18:57:00 host10 sendmail[3262]: p5N9uoUR003262: from=<xxx@dom10.com>, size=0, class=0, nrcpts=0, proto=ESMTP, daemon=MTA, relay=host11.dom10.com [192.168.10.11] ---------------------------------- 上記のエラーをネット等で調べると、 「/etc/mail/accessファイルでのリレーができていない」 という原因にしかたどり着けません。 accessファイルにはきちんとリレーの設定をし、 access.dbへの更新もした上で、サービスの再起動を行いましたが、動作は変わりません。 ちなみにaccessファイルの記述は下記の通りです。 /etc/mail/access ---------------------------------- Connect:localhost.localdomain RELAY Connect:localhost RELAY Connect:127.0.0.1 RELAY Connect:192.168.100 RELAY ---------------------------------- また、現在のメールサーバの設定(/etc/mail/sendmail.mc)は下記の通りとなっております。 /etc/mail/sendmail.mc ※先頭がdnlの行は省いてあります。 ---------------------------------- divert(-1)dnl include(`/usr/share/sendmail-cf/m4/cf.m4')dnl VERSIONID(`setup for linux')dnl OSTYPE(`linux')dnl define(`confDEF_USER_ID', ``8:12'')dnl define(`confTO_CONNECT', `1m')dnl define(`confTRY_NULL_MX_LIST', `True')dnl define(`confDONT_PROBE_INTERFACES', `True')dnl define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl define(`ALIAS_FILE', `/etc/aliases')dnl define(`STATUS_FILE', `/var/log/mail/statistics')dnl define(`UUCP_MAILER_MAX', `2000000')dnl define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl define(`confAUTH_OPTIONS', `A')dnl define(`confTO_IDENT', `0')dnl FEATURE(`no_default_msa', `dnl')dnl FEATURE(`smrsh', `/usr/sbin/smrsh')dnl FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl FEATURE(redirect)dnl FEATURE(always_add_domain)dnl FEATURE(use_cw_file)dnl FEATURE(use_ct_file)dnl FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl FEATURE(`blacklist_recipients')dnl EXPOSED_USER(`root')dnl DAEMON_OPTIONS(`Port=smtp,Addr=192.168.10.10, Name=MTA')dnl FEATURE(`accept_unresolvable_domains')dnl LOCAL_DOMAIN(`localhost.localdomain')dnl MAILER(smtp)dnl MAILER(procmail)dnl ---------------------------------- ※host11.dom10.com(192.168.10.11/24) から   メールサーバhost10.dom10.com(192.168.10.10/24)を経由し、 host10.dom100.com(192.168.100.10/24) へのメール送信をして失敗している状態です。 ※pingは通ります。 ※DNSはbindで構成しており、MXレコードは問題なく取得できています。 長々と目を通していただき恐縮です。 accessファイル以外の原因はなにかありますでしょうか?

  • イントラネット内にメールサーバー構築

    イントラネット内にネットワーク機器の監視の為の管理メールサーバーを構築しようとしています。 1.このネットワーク内のドメインはWindowsServer2008 R2に設定されており hage.localというドメインになっています。 2.同じネットワーク上のCentOS7のOSのPCにPostfixでsmtpサーバーを構築する際に 2.のPCのネットワーク設定でDNSサーバーは1.のサーバーになっているので、 その他のクライアントPCがDNSの参照先を1.のPCに設定しているので、 スムーズに参照できるように、 1のPCに、2のメールサーバーPCのホスト名を登録しようと思っているのですが、 1のDNSの前方参照ゾーンの設定画面で、 ホスト名を入れると(例hoge) 完全修飾ドメイン名(FQDN)(F): が hoge.hage.local と表示されます。(表示されてしまいます) 質問1ですが、 このように1でのDNSを登録し、 他のイントラネットのクライアントPCで2.のPCのメールサーバーとして指定する場合。 POSTFIXの設定ファイルには、 myhostname=hoge.hage.local と設定しないといけないのでしょうか? 質問2ですが またこのように設定する場合、メールをチェック受信するクライアントPCのメールサーバーの設定は hoge.hage.local と設定すればいいでしょうか? hage.localという名前を使いたくないなと思い質問しました。 質問3ですが .また、もしも、hoge.hage.localでないように設定する方法があれば教えてください。 ちょっと複雑なのですが、いろいろ調べてみたのですが、なかなかそれらしき文献が見つかりませんでした。 よろしくお願いします