こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Postfixで外部にメール送信ができません。

Postfixで外部にメール送信ができません。

お世話になります。いろいろなサイトやブログを参考に、自宅サーバーにPostfixを入れ、メールサーバーを構築していますが、外部へのメール送信ができません(似たような質問が、過去にこのサイトにも幾つかありますが、解決できませんでしたので、ここに改めて質問させてください)。なお、固定IPではなく、ダイナミックDNS(mydns.jpを利用)しています。

現在の状況ですが、例えばコマンドラインから外部のアドレス「USER@hoge.com」へメールを送るとします。

[root@localhost /]# mail USER@hoge.com

すると、相手には届かず、「/var/log/maillog」には以下のような記録が残ります。


May 4 20:18:39 localhost postfix/qmgr[17170]: 0875F2C0C4C: from=<>, size=2213, nrcpt=1 (queue active)
May 4 20:18:39 localhost postfix/bounce[17312]: E80932C0C4B: sender non-delivery notification: 0875F2C0C4C
May 4 20:18:39 localhost postfix/qmgr[17170]: E80932C0C4B: removed
May 4 20:18:39 localhost postfix/local[17313]: 0875F2C0C4C: to=<root@hoge.mydns.jp>, relay=local, delay=0.02, delays=0.01/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)
May 4 20:18:39 localhost postfix/qmgr[17170]: 0875F2C0C4C: removed


OSはCentOS 5.4を利用しており、Postfixは2.3.3です。下に「postconf -n」の結果を記載します。


alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = hoge.mydns.jp
myhostname = www.hoge.mydns.jp
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
relayhost = (ISPのSMTPサーバードメインを記載)
sample_directory = /usr/share/doc/postfix-2.3.3/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_banner = $myhostname ESMTP unknown
unknown_local_recipient_reject_code = 550


ポートに関しては「telnet localhost 25」で接続できることを確認できており、DNSについてはdigコマンドを使い、正引き、逆引き、MXレコードを確認しましたが、全て「status:NOERROR」で結果が表示されます。ここからどのようにすれば、メール送信ができるようになるでしょうか?皆様のお知恵をお貸しください。よろしくお願いします。

投稿日時 - 2010-05-04 20:55:21

QNo.5871487

困ってます

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

>ポートに関しては「telnet localhost 25」で接続できることを確認できており、

書き間違いかもしれませんが、これは意味ないです。

telnet ISPのSMTPサーバ 25
で、つないでみて、
HELO hoge.mydns.jp
MAIL FROM: root@hoge.mydns.jp
RCPT TO: you@yourISPmail.adress
DATA
test
.
QUIT
と、メールが送れるかどうか?

プロバイダによっては、上記では送信できず、SMTP認証が必要だったり、POP before SMTPが必要だったりします。多分今時はそれが普通。
PoftfixでどうやってSMTP認証に対応するかについては、検索すれば情報があるかと。

投稿日時 - 2010-05-04 23:12:01

お礼

お返事ありがとうございます。

>SMTP認証が必要だったり

おっしゃる通りでした。TelnetでISPのSMTPサーバーに接続したところ、メール送信時に「SMTP-AUTHを使え」という意味のエラーが返ってきました。完全にこちらの勉強不足です。これから、調べつつ対処していきたいと思います。ありがとうございました。

投稿日時 - 2010-05-05 12:19:58

ANo.2

このQ&Aは役に立ちましたか?

14人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

私も同じような環境で自宅サーバーを運用しています。
私の環境(CentOS,Postfix)での # postconf -n の結果を転記しておきます。
参考までに。

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
myhostname = server.dolphin-bbs.net
mynetworks = 192.168.0.0/24, 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
sample_directory = /usr/share/doc/postfix-2.3.3/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
unknown_local_recipient_reject_code = 550

投稿日時 - 2010-05-04 23:50:13

お礼

お返事ありがとうございます。

とても参考になります。自分のものとよく見比べながら、問題に対処してみます。助かりました、ありがとうございました。

投稿日時 - 2010-05-05 12:21:05

>ポートに関しては「telnet localhost 25」で接続できることを確認できており、
OBT25について理解が間違っているような気がするので、念のため書きますが、
自宅サーバと送信先メールサーバの間を、ポート25を使って送信できないようにするものです。
よって、OBT25を確認するならば、「telnet 相手SMTPサーバ 25」が出来るか?と、
インターネット上から、「telnet 自己メールサーバ 25」が出来るか?の確認となります。
外部からの接続については、環境がないと確認しにくいですが・・
オープンリレーな状態になっていないかの確認を兼ねて、http://www.abuse.net/relay.htmlなどで
チェックしてみると良いと思います。

ただ、外部メールサーバへの送信が出来ないのは、別の問題があるような気がします。
root@に戻されたエラーリターンのメールにヒントになるような記載があるかと思いますよ。

参考URL:http://www.abuse.net/relay.html

投稿日時 - 2010-05-04 21:50:22

お礼

お返事ありがとうございます。

>OBT25を確認するならば、「telnet 相手SMTPサーバ 25」が出来るか?

SMTP-AUTHの問題であったようで(それだけかは分かりませんが)、ご指摘いただいたとおり相手SMTPサーバーへtelnetすると、接続自体はできるのですが、メール送信時に「SMTP-AUTHを使ってくれ」といった内容のエラーが表示されました。これから調べつつ対処していきたいと思います。

ありがとうございました。

投稿日時 - 2010-05-05 12:17:33

あなたにオススメの質問