Postfix+Dovecotでメール送受信できません

Mac mini/OSX 10.8(ServerではないMountain Lion)にPostfixとDovecotをインストールして、閉じたLAN内だけで使うメールサーバを構築しようとしているのですが上手くいきません。原因や直し方をご存じの方がいましたらアドバイスいただけると有り難いです。





●Postfixはここを参考にインストールしました

http://earlybirds.ddo.jp/namahage/inegalog/article.php?id=60



メール送信に関しては、上記ブログの通りターミナルからテスト送信することはできました。ですが、AppleMailで新規メールを作成し、送信しようとすると「差出人のアドレス admin@192.168.0.52は、サーバ192.168.0.52から拒否されました」と送信エラーが出てしまいます。


AppleMailの接続診断では、送信(SMTP)は接続できた状況のようで「サーバに接続しました。ログインは必要ありません」と表示されています。


いま送信しようとしているのは、以前から使っているLAN内の別サーバ(OSX 10.5, Eudora Internet Mail Server)で info@192.168.0.50 です。


OSX 10.8のAppleMailから SMTPサーバ192.168.0.50 を使って info@192.168.0.50 へ送信することはできます。送信時のSSLや認証は全て「無し」に設定しています。





●Dovecotはここを参考にインストールしました

http://d.hatena.ne.jp/itmammoth/20130302/1362213258



メール送信に関しては、AppleMailの接続診断で受信(POP)は「アカウントにログイン中」と表示されたままの状況が続き、ログインが完了しません。


ターミナルで、telnet localhost 110 と入力すると


Connected to localhost.

Escape character is '^]'.

+OK Dovecot ready.


と表示されますし、アクティビティモニタを見ても_dovecotのプロセスとしてanvilが動いているようです。


ちなみに、OSX 10.8のAppleMailから LAN内の別のPOPサーバ(OSX 10.5, Eudora Internet Mail Server)192.168.0.50 のメールボックスから info@192.168.0.50 のメールを受信(APOP、ポート110)することはできました。





【質問】

1.AppleMailからの送信、受信が正しく行えるようにするには、どうすればよいでしょうか?


2.従来LAN内で使っていたEudora Internet Mail Serverは、サーバ名を設定せず固定のIPアドレスだけで運用できていたのですが、Postfixはサーバ名にIPアドレスを設定しようとするとエラーが出てしまうため、仕方なく lanserver.jp と仮のサーバ名を設定してあります。


これが原因で送受信できないようでしたら、IPアドレスだけでPostfix+Dovecotを使う方法はないでしょうか?

送信者名を admin@lanserver.jp にして送信トライしてみても、結果は上記と同じでした。




【環境】

Mac mini (Late 2012) Intel Core i7 2.3GHz

8GB RAM, 1.12TB Fusion Drive

Mac OS X 10.8.4

Postfix 2.9.2

Dovecot 2.2.2

AppleMail 6.5

Xcode 4.6.3



長文になってしまい、すみません。

どうぞよろしくお願いいたします。


件名を修正しました:Beginner70

Mac mini, OS X Mountain Lion (10.8.4), Postfix, Dovecot, AppleMail

投稿日 2013/06/17 01:32

返信
返信: 14

2013/06/17 03:37 Beginner70 への返信

> 送信しようとすると「差出人のアドレス admin@192.168.0.52は、サーバ192.168.0.52から拒否されました」と送信エラー


ラン内にDNSは用意されてるのでしょうか?

メールサーバはDNSを用意して、IPアドレスから名前を引けるようにしておかないとうまく動きません。

ターミナルでは送れるのなら、admin@127.0.0.1 としてみたらどうなんでしょう?

大抵のメールサーバは、default では 127.0.0.1 からの要求なら受け付けますので。

もし、127.0.0.1 で OKなら、postfix の設定で、ラン内からのメール送信要求を許可しているかどうかですね。

2013/06/17 04:50 はに への返信

早速に回答ありがとうございました。


今までのメールサーバがIPアドレスだけで運用できていたのですが、やはりDNSサーバが必須となると、これから用意してみます。


差出人アドレスを admin@127.0.0.1 にしてみても、やはり結果は同じようにエラーで送信不可でした。「下書き」メールボックスに入っていた送信メールが、送信前の状態のまま「送信」メールボックスへ移動しただけです。


数日後になってしまうかもしれませんが、DNSサーバを用意してトライ後、また結果報告か、引き続きご相談をさせていただきます。

取り急ぎ報告と御礼のみで失礼します。

2013/06/17 19:57 Beginner70 への返信

送信エラーを起こした時点のPostfix側のステータスはどうなっていたのでしょうか?


もし、

waring : Illegal address syntax from unknown[xxx.xxx.xxx.xxx] in MAIL command: <aaaa@xxx.xxx.xxx.xxx>


になっている場合、Postfixのmain.cfに「resolve_numeric_domain = yes」の行を追加して見て下さい。

2013/06/17 21:15 gaitiro への返信

gaitiro による書き込み:


Postfixは初期のままだと127.0.0.1(メールサーバ本体)から送信されたメールしか中継しません。

Postfix Relayで検索して192.168.0.0/24からのメッセージを中継する設定を入れてください。


ありがとうございます。調べてやってみます。

2013/06/17 21:29 蝦夷_オカメの親 への返信

蝦夷_オカメの親さん、早速のレスありがとうございます。検証までしていただき、恐縮です。

OSX Serverも選択肢かもしれませんが、もう少し頑張ってみます。


送信エラー時のPostfixログは、コンソールで見たところ次のようになっていました。

ご指摘のエラーは出ていないようです。


2013/06/17 20:47:31.309 postfix/smtpd[438]: warning: cannot get RSA certificate from file /System/Library/OpenSSL/certs/server.crt: disabling TLS support

2013/06/17 20:47:31.309 postfix/smtpd[438]: warning: TLS library problem: 438:error:02001002:system library:fopen:No such file or directory:/SourceCache/OpenSSL098/OpenSSL098-47.1/src/crypto/bio/bss_file.c:356:fopen('/System/Library/OpenSSL/certs/server.crt','r'):

2013/06/17 20:47:31.309 postfix/smtpd[438]: warning: TLS library problem: 438:error:20074002:BIO routines:FILE_CTRL:system lib:/SourceCache/OpenSSL098/OpenSSL098-47.1/src/crypto/bio/bss_file.c:358:

2013/06/17 20:47:31.309 postfix/smtpd[438]: warning: TLS library problem: 438:error:140DC002:SSL routines:SSL_CTX_use_certificate_chain_file:system lib:/SourceCache/OpenSSL098/OpenSSL098-47.1/src/ssl/ssl_rsa.c:722:

2013/06/17 20:47:31.310 postfix/smtpd[438]: warning: non-null host address bits in "192.168.0.0/8", perhaps you should use "192.0.0.0/8" instead

2013/06/17 20:47:31.328 postfix/smtpd[438]: warning: non-null host address bits in "192.168.0.0/8", perhaps you should use "192.0.0.0/8" instead

2013/06/17 20:47:31.351 postfix/local[444]: error: od[getpwnam_ext]: no record for user postmaster

2013/06/17 20:47:31.352 postfix/local[444]: warning: required alias not found: postmaster


送信時の認証は無しに設定したつもりでしたが、証明書か何かを取得しようとしてエラーになっているのでしょうか?

2013/06/30 06:07 蝦夷_オカメの親 への返信

ずいぶん時間が経ってしまいましたが、蝦夷_オカメの親さんのアドバイス通りmain.cf の設定を変えてみましたが、結果は変わらずでした。


蝦夷_オカメの親さんの検証環境ではDNSサーバを構築されていないとのことで、何とかその状態を目指したいのですが、その場合Postfixのmain.cf の myhostname= にはローカルホストのIPアドレスが入っているのでしょうか? あるいは行ごとコメントアウトでしょうか。


当方の環境では、myhostname= にIPアドレスを入れると、ログで


warning: valid_hostname: numeric hostname: 192.168.0.52


とエラーが出てしまいます。main.cfに「resolve_numeric_domain = yes」の行を追加していても同じです。



main.cfで smtp_use_tls = no , inet_interfaces = all にしても、相変わらずTLS関連のエラーは出ています。


やはり観念してDNSサーバを立ててみるしかないでしょうか?

2013/06/30 06:42 Beginner70 への返信

Postfixのmain.cf の myhostname= にはローカルホストのIPアドレスが入っているのでしょうか?

/etcディレクトリのhostsファイルに該当するホスト名+ドメイン名を登録してあり、myhostnameにはホスト名+ドメイン名を記述してあります。(openSUSE12.3のYaSTにて設定しています。)

main.cfで smtp_use_tls = no , inet_interfaces = all にしても、相変わらずTLS関連のエラーは出ています。

openSUSE12.3では、smtp_use_tlsの値をnoにするとTLS関連の処理は使わない動作になっています。

やはり観念してDNSサーバを立ててみるしかないでしょうか?

まずは、hostsファイルにホスト名+ドメイン名を登録して見て下さい。

次にTLS関連のエラーを解決して下さい。

2013/07/06 05:16 蝦夷_オカメの親 への返信

アドバイスありがとうございました。

まずは、hostsファイルにホスト名+ドメイン名を登録して見て下さい。

次にTLS関連のエラーを解決して下さい。


遅くなりましたが、hostsファイルにホスト名+ドメイン名として「mail.lanserver.jp」を登録し、private/etc/aliases.dbを再構築したところ


warning: non-null host address

error: od[getpwnam_ext]: no record for user postmaster

warning: required alias not found: postmaster


などのエラーや警告は出なくなりました! あと、下記の設定項目を変えたりコメントアウトしたところ、TLS関連のエラーもほぼ出なくなりました。


■コメントアウト

#smtpd_tls_cert_file=/System/Library/OpenSSL/certs/server.crt

#smtpd_tls_key_file=/System/Library/OpenSSL/certs/server.key

#smtpd_tls_loglevel=1

#smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache


■変更

変更前:smtpd_client_restrictions = permit_mynetworks permit_sasl_authenticated permit

変更後:smtpd_client_restrictions = permit_mynetworks


変更前:smtpd_recipient_restrictions=permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination

変更後:smtpd_recipient_restrictions=permit_mynetworks, reject




お陰様で一歩前進できたようです。しかしながら、肝心のAppleMailの挙動は相変わらず「差出人のアドレスadmin@lanserver.jpはメールサーバmail.lanserver.jpから拒否されました」と出るばかりで、送受信とも全くできません。


現状のPostfixログは以下の通りです。Dovecotのエラーもいくつか出ていますが、それを先に解決するとPostfixでの送信も問題解消したりするのでしょうか?


Jul 6 20:40:02 mail.lanserver.jp postfix/smtpd[430]: warning: No server certs available. TLS won't be enabled

Jul 6 20:40:02 mail.lanserver.jp postfix/smtpd[430]: connect from mail.lanserver.jp[192.168.0.52]

Jul 6 20:40:02 mail.lanserver.jp postfix/cleanup[432]: 0CE4E69EF7E: message-id=<20130706114002.0CE4E69EF7E@mail.lanserver.jp>

Jul 6 20:40:02 mail.lanserver.jp postfix/smtpd[430]: disconnect from mail.lanserver.jp[192.168.0.52]

Jul 6 20:40:02 mail.lanserver.jp postfix/qmgr[416]: 0CE4E69EF7E: from=<double-bounce@mail.lanserver.jp>, size=1128, nrcpt=1 (queue active)

Jul 6 20:40:02 mail.lanserver.jp postfix/local[434]: 0CE4E69EF7E: to=<root@mail.lanserver.jp>, orig_to=<postmaster>, relay=local, delay=0.06, delays=0.04/0.02/0/0, dsn=2.0.0, status=sent (delivered to file: /dev/null)

Jul 6 20:40:02 mail.lanserver.jp postfix/qmgr[416]: 0CE4E69EF7E: removed

Jul 6 20:41:26 mail.lanserver.jp postfix/smtpd[430]: connect from mail.lanserver.jp[192.168.0.52]

Jul 6 20:41:26 mail.lanserver.jp postfix/cleanup[432]: 2B51B69EFD1: message-id=<20130706114126.2B51B69EFD1@mail.lanserver.jp>

Jul 6 20:41:26 mail.lanserver.jp postfix/smtpd[430]: disconnect from mail.lanserver.jp[192.168.0.52]

Jul 6 20:41:26 mail.lanserver.jp postfix/qmgr[416]: 2B51B69EFD1: from=<double-bounce@mail.lanserver.jp>, size=1216, nrcpt=1 (queue active)

Jul 6 20:41:26 mail.lanserver.jp postfix/local[434]: 2B51B69EFD1: to=<root@mail.lanserver.jp>, orig_to=<postmaster>, relay=local, delay=0, delays=0/0/0/0, dsn=2.0.0, status=sent (delivered to file: /dev/null)

Jul 6 20:41:26 mail.lanserver.jp postfix/qmgr[416]: 2B51B69EFD1: removed

2013/07/30 05:48 Beginner70 への返信

かなり遅くなりましたが、当初の質問要件をクリアし、AppleMailによる送受信ができるようになりましたので、顛末ご報告します。結論から言うと、AppleMailの挙動がこちらの想定と少々違っていたようです。



■前回(7/6)以降に処置したこと



1)Postfixの設定ファイルmain.cfで、TLS/SASL関連などをなるべくオフにしてみました(これだけでは結果は変わらず)



下記をコメントアウト

#smtpd_tls_cert_file=/System/Library/OpenSSL/certs/server.crt

#smtpd_tls_key_file=/System/Library/OpenSSL/certs/server.key

#smtpd_tls_loglevel=1

#smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache



下記を変更

#smtpd_client_restrictions = permit_mynetworks permit_sasl_authenticated permit

smtpd_client_restrictions = permit_mynetworks



#smtpd_recipient_restrictions=permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination

smtpd_recipient_restrictions=permit_mynetworks, reject





2)AppleMailの環境設定で、送信サーバの使用ポートを「カスタムポート:25」に変更したところ、自分宛メールの送信だけ成功(なぜか受信は行われないまま)



それまでの設定で「デフォルトポートを使用(25,465,587)」が選択されていたので、587ポートへの接続がうまくいかない場合は自動的に25ポートへ接続リトライしてくれるのかと思っていたのですが、送信試行中に接続診断の画面(詳細情報)を見ていると自動切り替えが行われていないようだったので、カスタムで25ポートを指定してみると、あっさり送信できました。





3)AppleMailの接続診断で見るとPOP接続自体は成功しているようだったので、メールボックスの場所指定がPostfixとDovecotで一致していないのではと考え、下記の設定を揃えたところ、自分宛に送信したメールが受信できるようになりました。



ファイル:usr/local/etc/dovecot/conf.d/10-mail.conf

該当箇所:mail_location = maildir:‾/Maildir



ファイル:privat/etc/postfix/main.cf

該当箇所:home_mailbox = Maildir/



それまで10-mail.confの方が mail_location = maildir:/var/mail になっていました。Postfixのhome_mailbox は、受信メールの保存場所と保存形式を同時に指定するという認識でいいのでしょうか(デフォルトはmbox形式で /var/spool/mail/user or /var/mail/user、qmail形式で保存する場合はパス指定の末尾を"Maildir/"にする?)





ともあれ、初期の目的が達成できましたので、回答いただけた皆様にあらためて御礼申し上げます。



あとは管理者以外のアカウントで送受信できるように、Dovecotを調整していくことになるかと思いますが、またつまずいたときはお世話になるかもしれません。本当にありがとうございました。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

Postfix+Dovecotでメール送受信できません

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。