- https://help.ubuntu.com/community/PostfixBasicSetupHowto
- virtual domainを使わないシンプルなメールサーバ
- https://help.ubuntu.com/community/PostfixVirtualMailBoxClamSmtpHowto
- virtual domainを用いて基本的なメールサーバを構築する際の手順
- (postfix-jp:02156) 全メールのバックアップ
- (postfix-jp:01388) 再送のタイミングはどうやって決めるのでしょうか?
- http://www.asi.co.jp/techinfo/unix/postfix.html
- (postfix-jp: 425) Virtual環境での .forward が有効になりません
virtual(8)
This delivery agent only delivers mail. Other features such as mail forwarding, out-of-office notifications, etc., must be configured via virtual_alias maps or via similar lookup mechanisms.
ということなので、自分はvirtual_alias_mapsでPostgreSQLに問い合わせるよう にしています。また、virtualはコマンドやファイルへの配送もサポートしませ ん。
- Postfix チュートリアル - バーチャルドメイン
- Postfixでのメールサーバ運用Tips - satospo
- ログの冗長モード
- qshape
- PostfixのQueueLifeTime
- メールのサイズ制限
- anvilのログ
- Postfixの統計情報
- anvilの出力調整
- 配送遅延
- 逆引きできない送信元を拒否する
- キューの削除
- 全てのキューの削除
- http://www.postfix-jp.info/docs.html
- http://www.postfix-jp.info/jhtml/
- 目的別の設定項目を知りたい際はこちらが良さそう
- ex) Postfix 速度制御
- (postfix-jp:259) Re: IPv6 on Postfix
mynetworks = IPv4 アドレスブロック, [::1]/128, [IPv6 NLA2ブロック::]/48
- localhostのみから受け付けるときは以下の通り
mynetworks = 127.0.0.0/8, [::1]/128
- localhostのみから受け付けるときは以下の通り
- Postfix manual - postqueue(1)
-f キューをフラッシュします: キューにある全てのメールの配送を試みます。
- 一般ユーザ権限でも実行できる模様
backup server
- MXを複数記述しておき、メインのSMTPdが死んでいるときにメールを貯めておく
- ex)
- mail2.mitty.jp:/etc/postfix/main.cf (backup server)
(snip) relay_domains = /etc/postfix/relay_domains relay_transport = smtp:mail1.mitty.jp
- /etc/postfix/relay_domains
mitty.jp test.mitty.jp (snip)
- mail2.mitty.jp:/etc/postfix/main.cf (backup server)
- 「relayhost」を使うと、外向きの転送が全て「relayhost」を通るように指定されるため、open relayとして拒否される
Apr 30 06:32:00 www27070u postfix/pickup[8562]: 83C8C40DC5D2: uid=1000 from=<mitty> Apr 30 06:32:00 www27070u postfix/cleanup[8703]: 83C8C40DC5D2: message-id=<20110429213200.83C8C40DC5D2(*)www27070u.sakura.ne.jp> Apr 30 06:32:00 www27070u postfix/qmgr[8563]: 83C8C40DC5D2: from=<mitty(*)www27070u.mitty.jp>, size=465, nrcpt=1 (queue active) Apr 30 06:32:00 www27070u postfix/smtp[8706]: 83C8C40DC5D2: to=<s0711489(*)coins.tsukuba.ac.jp>, relay=www5085u.mitty.jp[59.106.180.123]:25, delay=0.14, delays=0.02/0.01/0.05/0.06, dsn=5.7.1, status=bounced (host www5085u.mitty.jp[59.106.180.123] said: 554 5.7.1 <s0711489(*)coins.tsukuba.ac.jp>: Relay access denied (in reply to RCPT TO command))
- local MTAでの外への送信も出来なくなるので注意
merge domains conf and maps db
- main.cfで指定出来る「virtual_mailbox_domains」と「virtual_alias_domains」は、それぞれデフォルトで「$virtual_mailbox_maps」「$virtual_alias_maps」が指定されているため、受け取るドメインの一覧と、受け取るアドレスの一覧をそれぞれ一つのファイルにまとめることが可能
- 「virtual_alias_maps」については、The table format and lookups are documented in virtual(5).と書かれているが、「virtual_mailbox_maps」についてはそのような記述はない。が、実際に試した限りでは同じように記述出来る模様。
- どちらの説明にも、The default value is backwards compatible with Postfix version 1.1.とあるので、推奨されない設定の可能性がある。
- main.cf
(snip) # virtual_mailbox_domains = $virtual_mailbox_maps (default) virtual_mailbox_base = /PATH/TO/virtual_mailbox_base virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps (snip) # virtual_alias_domains = $virtual_alias_maps (default) virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps
- /etc/postfix/virtual_mailbox_maps
mitty.jp accept SOMEHOST.mitty.jp accept USER1@SOMEHOST.mitty.jp mitty.jp/USER1/ USER2@SOMEHOST.mitty.jp mitty.jp/USER2/ (snip)
- 「accept」に意味は無い(see #virtual.5)
- /etc/postfix/virtual_alias_maps
ALIASE.mitty.jp accept webmaster@ALIASE.mitty.jp USER1@SOMEHOST.mitty.jp admin@ALIASE.mitty.jp mitty@SOMEHOST.mitty.jp
- 上記設定で、virtual配送、alias配送ともに正常に行われる
- 「accept」の部分を書き忘れるとpostmapから「expected format: key whitespace value」と警告される(実際「Relay access denied」になる)
- ドメインの行そのものを省略することは出来ない(「Relay access denied」) (see #virtual.5)
virtual.5
Support for a virtual alias domain looks like:
/etc/postfix/main.cf:
virtual_alias_maps = hash:/etc/postfix/virtualNote: some systems use dbm databases instead of hash. See the output from "postconf -m" for available database types.
/etc/postfix/virtual:
virtual-alias.domain anything (right-hand content does not matter) postmaster@virtual-alias.domain postmaster user1@virtual-alias.domain address1 user2@virtual-alias.domain address2, address3The virtual-alias.domain anything entry is required for a virtual alias domain. Without this entry, mail is rejected with "relay access denied", or bounces with "mail loops back to myself".
- 特定のドメインに来たメールを、ユーザに関わらず全て別のドメインの同じユーザ名のアドレスに配送する場合
- virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps
@ALIASE.example.jp @ALIASE.mitty.jp
- ex: any_name_user@ALIASE.example.jp -> any_name_user@ALIASE.mitty.jp
- virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps
postfix/anvil
- /var/log/mail.logにおけるpostfix/anvilのstatistics間隔を延ばすには、流入するメッセージの流量が少ないSMTPサーバでは/etc/postfix/main.cfでanvil_rate_time_unitやanvil_status_update_timeを大きくするだけでは不十分
- 一定時間(デフォルト100秒)接続がないと、anvilプロセスは終了し、その際にstatisticsを出力するため
- max_idleを延ばす必要がある
- 起動してから終了するまでの時間ではないことに注意
- Postfix manual - anvil(8)
診断
問題や処理は syslogd(8) に記録されます。
終了時および anvil_status_update_time 秒ごとに、サーバは 測 定された最大のカウントと速度を (service, client) 情報やそのイベントに対 応する時刻とともにログに記録します。不必要なオーバーヘッドを避 け る た め、同時制限や速度制限されていない活動の測定はおこなわれません。
- Gentoo Forums :: View topic - postifix, anvil and unwanted statistics [SOLVED]
- postfix-users : Message: Re: anvil logging
Am I limited to setting anvil_status_update_time to something high? (~1 week)
That would suck up an insane amount of memory when you get hit by a backscatter wave.
- Dave's Brain - Browse - computer tips - postfix less anvil logging
In main.cf set this:
anvil_status_update_time = 1d
That's once per day. And in master.cf add:
anvil unix - - n - 1 anvil
-o max_idle=1d
This is needed because Anvil will log each time its restarted (which is determined by max_idle).
docomo
- 環境によっては、2セッション以上connectionを張ろうとすると、問答無用でrefuseされる模様
Oct 5 10:36:08 www2472ue postfix/smtp[7774]: connect to mfsmax.docomo.ne.jp[203.138.180.240]:25: Connection refused Oct 5 10:36:08 www2472ue postfix/smtp[7773]: connect to mfsmax.docomo.ne.jp[203.138.180.240]:25: Connection refused Oct 5 10:36:08 www2472ue postfix/smtp[7775]: connect to mfsmax.docomo.ne.jp[203.138.180.240]:25: Connection refused Oct 5 10:36:08 www2472ue postfix/smtp[7776]: connect to mfsmax.docomo.ne.jp[203.138.180.240]:25: Connection refused
- 「$ telnet mfsmax.docomo.ne.jp 25」すると、2セッション目から「telnet: Unable to connect to remote host: Connection refused」といわれる
- 同じpostfix設定でエラーが起きない環境もある?
- [postfix-jp:02140 Re: : postfix とDOCOMO]
その結果、Postfix から DoCoMo に対して確実にメールが送信出来るパターンは、 2通一組で、5秒間隔なら確実に送信可能でした。 sendmail では、特に特別な事をすることなく、アドレスさえ合っていたら、いくらでも 送信できました。
- Postfixの設定もろもろ - 偽じ日報
たとえば、docomo.ne.jp宛てのメールだけ並列送信なしで1セッション1通のみ送信とかしたい場合。 master.cfに
docomo-smtp unix - - n - 1 smtp
-o smtp_destination_concurrency_limit=1 -o smtp_destination_recipient_limit=1
とか追加。 で、transportファイルなどを用意
docomo.ne.jp docomo-smtp:
# postmap transport っと実行したら、transport.dbが更新(新規作成)される。 main.cf内に、
transport_maps = hash:/etc/postfix/transport
を記述 で、リロード
/etc/rc.d/init.d/postfix reload
とか。 ちなみに、docomo.ne.jpあてのメールを別サーバーにリレーさせたいのなら、
docomo.ne.jp docomo-smtp:
を、 docomo.ne.jp docomo-smtp:[192.168.0.100] IPやホストを書く場合、[]で囲ってあげにゃだめ。 とかとか。
- なんちゃってアイ○ンポート2 - 偽じ日報
3.ちょこっとPostfixチューニング
master.cfとtransportファイルに宛て先ドメインごとの配信制御設定を追加。
# vi /etc/postfix/transport
~ docomo.ne.jp docomo-smtp:n .docomo.ne.jp docomo-smtp:n yahoo.co.jp yahoo-smtp:n ybb.ne.jp yahoo-smtp:n ~ # postmap /etc/postfix/transport # vi /etc/postfix/master.cf ~ docomo-smtp unix - - n - 1 smtp -o smtp_destination_concurrency_limit=1 -o smtp_destination_recipient_limit=1 yahoo-smtp unix - - n - 10 smtp -o smtp_destination_concurrency_limit=1 -o smtp_destination_recipient_limit=4 ~ # postfix reload
forwarding virtual_mailbox
- めも日記(2004-09-11)
メールを携帯に転送する時に、メールボックスのアカウントで .forward ファイルを使って
noppi (このアカウント自身を指定) keitai_no_acount@keitai_no_domain.jp (携帯のアドレスを指定)
としていたのですが、alias テーブルに
noppi: noppi, keitai_no_acount@keitai_no_domain.jp
とすれば .forward ファイルを使う必要がないことに気づいたので、そのように設定しました。 (^^; 上の alias テーブルの書き方だとなんかメールが無限にバウンスしそうな気がしましたが、 よく考えてみると .forward で指定してもバウンスしそうな書き方で実際は大丈夫なので alias テーブルに直に書いても大丈夫だろうと…。 (^^; 案の定、問題なかったです。 (^^;;
- さくらのVPSの設定 - メールサーバーの構築 | TipsZone
エイリアスの設定
.forward の様にメールの転送を行いたい時、この設定を行う。バーチャルメールボックスに届いたメールを転送するには、/etc/postfix/virtual ファイルで設定を行う。 次のように転送元と転送先を空白(半角スペースやタブ)で区切って指定すればよい。 転送先はカンマで区切って複数指定できる。 受信メールアドレスに指定するメールアドレスは、「バーチャルメールボックスのアカウントの設定」をしていないものでも良い。 [ 詳細 ]
(受信メールアドレス) (転送先1), (転送先2), ...
転送しつつ、元のメールボックスにもメールを残しておきたい場合には、転送先に転送元のメールアドレスを書いておけば良い。(転送の無限ループにはなりません。)
このファイルを変更した後は次のコマンドを実行する。
$ postmap /etc/postfix/virtual