- PR -

sendmailで外部ドメインにメールが送付出来ない

投稿者投稿内容
beer
常連さん
会議室デビュー日: 2007/02/09
投稿数: 31
投稿日時: 2009-01-27 23:11
お世話になっております。

今、Sol9サーバにて構築を行っていてsendmailのところで詰まってしまい、
困っております。
ご教授のほどよろしくお願い致します。

サーバの構築が終わったと思い、商用環境への組み込みを行ったところ、
ローカルから社外ドメインのへのメール送付が行えない状況ではまって
しまいました。

ローカルから送付しようとした場合に、以下のようなエラーログが出力
されている状態です。

Jan 27 21:00:25 mx sendmail[24677]: [ID 801593 mail.notice] n0RC0Pus024677: ruleset=check_rcpt, arg1=<XXXX@XXXXX.ne.jp>, relay=[XXX.XXX.XXX.XXX],
reject=550 5.7.1 <XXXX@XXXXX.ne.jp>... Relaying denied. IP name lookup failed [XXX.XXX.XXX.XXX]


以前に、同様のことがあった際にsenmail.mcに
「FEATURE(`accept_unresolvable_domains')dnl」
を追記し、sendmail.cfを作成しなおすことで解決出来たのですが、今回
は解決に至りませんでした。
すみません、どなたか教えて頂けますようお願い致します。


■サーバ情報
 ・OS:Solaris9
 ・sendmail:sendmail-8.14.3

■sendmail.mc
divert(-1)
VERSIONID(`$Id: generic-solaris.mc,v 8.13 2001/06/27 21:46:30 gshapiro Exp $')
OSTYPE(solaris2)dnl
DOMAIN(generic)dnl
FEATURE(`nocanonify')dnl
define(`confMAX_MESSAGE_SIZE', `3145728')
FEATURE(`mailertable')dnl
FEATURE(`access_db')dnl
FEATURE(`relay_mail_from')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`accept_unresolvable_domains')dnl
MAILER(local)dnl
MAILER(smtp)dnl
define(`confCF_VERSION',`XXXXXXXXX')dnl
define(`confDOMAIN_NAME',`$w.$m')dnl
F/A
ぬし
会議室デビュー日: 2006/03/18
投稿数: 312
お住まい・勤務地: Tokyo
投稿日時: 2009-01-28 01:35
ローカルからなら127.0.0.1に送信すればいいと思いますが、
それが無理なら [XXX.XXX.XXX.XXX] のIPを、
AccessDBかrelay-domainsに登録してはいかがでしょうか?

ローカルからNICのIP宛てに送信すると
デフォルトで外部向けメールがブロックされたかどうかは覚えてなく、
また確認する環境が無いのですが、
ログからはブロックされるようですね。

[ メッセージ編集済み 編集者: F/A 編集日時 2009-01-28 01:39 ]
beer
常連さん
会議室デビュー日: 2007/02/09
投稿数: 31
投稿日時: 2009-01-28 10:51
おはようございます。
F/Aさん回答ありがとうございます。

AccessDB、relay-domainsに記載するとなると膨大な数になってしまう状態ですので、出来れば避けたいと思っています。
また、本件と関係があるのか解りませんが、メールを送付しようとする際に、以下のエラーログが出ているのがわかりました。

これは、今回のことと関連があるのでしょうか?
個人的には別の問題のような気もしているのですが。。。


■エラーログ
Jan 27 21:57:20 mx sendmail[27231]: [ID 801593 mail.crit] n0RCvKk27231: SYSERR(root): Cannot open hash database /etc/mail/access.db: Invalid argument
passol
常連さん
会議室デビュー日: 2008/12/12
投稿数: 20
投稿日時: 2009-01-28 23:07
こんばんは、passolです。
もう、解決済みかもしれませんが・・・

引用:

サーバの構築が終わったと思い、商用環境への組み込みを行ったところ、
ローカルから社外ドメインのへのメール送付が行えない状況ではまって
しまいました。


ローカルは、LAN内のPCからということであっていますか?
もしそうでしたら、構築したメールサーバーから社外ドメインへの送信は出来るか試してみてください。
出来るのならやっぱり、access.dbか、relay-domainsの設定を記載していないから動作していないのでは?という疑惑が申し訳ないのですが、拭えないです。


引用:

AccessDB、relay-domainsに記載するとなると膨大な数になってしまう状態ですので、出来れば避けたいと思っています。
また、本件と関係があるのか解りませんが、メールを送付しようとする際に、以下のエラーログが出ているのがわかりました。


access.dbでは、以下のような記述も出来ますのでそんなに膨大な数になるとは思えないです。(なるのでしたら、すいません・・・)
・192.168.XXX.XXXからのメールのリレーを許可する。
コード:
192.168 RELAY




引用:

Jan 27 21:57:20 mx sendmail[27231]: [ID 801593 mail.crit] n0RCvKk27231: SYSERR(root): Cannot open hash database /etc/mail/access.db: Invalid argument


上記のログはaccess.dbが開けないよ〜と叫んでいるので、たぶん関係あると思います。
下記のような記述もありますので、もし良かったらaccess.dbを作成(もしくは作り直す)してみて下さい。
http://search.luky.org/linux-users.9/msg00061.html
XAI
会議室デビュー日: 2003/08/28
投稿数: 9
投稿日時: 2009-01-29 00:54
こんにちは

ローカルからという言葉が「メールサーバのOS上から」という意味なのか、「同じLAN上のクライアントから」という意味なのかがわかりませんが、後者と仮定します。

550系のエラーコードが返されてるということは構築されたサーバへはSMTPが成功し、そこから宛先ドメインのMTAへ転送する際にエラーが返ってきてる状況だと思います。
(この辺はmaillogを見て確認してください)

エラーメッセージが「Relaying denied. IP name lookup failed 」とあるので単純に構築されたサーバIPアドレスの逆引きができてないだけな気がしますので、宛先となるメールサーバの管理者にDNS逆引きチェックをしているか確認し、チェックしているのであれば自ドメインのPTRレコードに構築したメールサーバの情報を記載してあげれば大丈夫だと思います。
beer
常連さん
会議室デビュー日: 2007/02/09
投稿数: 31
投稿日時: 2009-01-29 16:18
おせわになっております。
いろいろと回答をありがとうございます。

すみません、先日私が書いた内容がわかりづらいので、再度現状を再度説明させて頂きます。

今、aaa@aaa.co.jp(自ドメイン)からbbb@bbb.co.jp(外部ドメイン)に対してメールを送付しようとしています。
このときに、「Relaying denied. IP name lookup failed 」のエラーを出力してしまい、送付できないで困っています。

送信時にクライアントPCのIPを逆引きすることなくリレーを許可するためには、sendmail.mcファイルにて「FEATURE(`accept_unresolvable_domains')dnl」を追加し、sendmail.cfを作成すればOKと思っているのですが、違うのでしょうか?


-----
Jan 27 21:57:20 mx sendmail[27231]: [ID 801593 mail.crit] n0RCvKk27231: SYSERR(root): Cannot open hash database /etc/mail/access.db: Invalid argument
-----
上記のエラーに関して調査したところ、sendmailのインストール時にnroffを使用していたことが解り、groffをインストールし、再度sendmailのインストールを実施したところ無事解決されました。
F/A
ぬし
会議室デビュー日: 2006/03/18
投稿数: 312
お住まい・勤務地: Tokyo
投稿日時: 2009-01-29 19:54
細かい挙動を説明すると、非常に長くなりますので割愛させて頂きます。
結論から言うとaccept_unresolvable_domainsは関係ないです。

ちなみに、たとえ逆引き出来たとしても、
エラーが「Relaying denied. IP name lookup failed」から「Relaying denied.」に
変わるだけです。

回避方法はいろいろあって、ひょっとしたら以前のマシンには
気がつかずそういった設定が入っていたのかも知れません。
もしくは別の要因で送信出来ていたのかも知れません。

ですけど、この場合もっとも確実なのはaccess.dbを使用する事だと思います。
relay_mail_fromを定義されているのでそれを使用されてもいいと思いますが、
それもaccess.dbへの設定が必要です。

access.dbも定義されているみたいですから使用されていると思いますけど、
どのように書かれているのですか?


[ メッセージ編集済み 編集者: F/A 編集日時 2009-01-29 19:58 ]
XAI
会議室デビュー日: 2003/08/28
投稿数: 9
投稿日時: 2009-01-30 01:36
> チェックしているのであれば自ドメインのPTRレコードに
> 構築したメールサーバの情報を記載してあげれば大丈夫だと思います。

逆引きという単語から脊髄反射的にPTRと書きましたが、
sendmailだと受信確認に使うのはAレコードだった気がします。
(設定によっては先にAAAを引いた気も)

MTAの種類によって違うのかもしれませんが、DNS逆引きが問題だった場合は素直に相手側管理者に必要なレコード情報を聞くのが良いかと。

間違ってたらごめんなさい。

スキルアップ/キャリアアップ(JOB@IT)