[[PageOutline]] * https://help.ubuntu.com/community/PostfixBasicSetupHowto * virtual domainを使わないシンプルなメールサーバ * https://help.ubuntu.com/community/PostfixVirtualMailBoxClamSmtpHowto * virtual domainを用いて基本的なメールサーバを構築する際の手順 * [http://www.postfix-jp.info/ML/arc.3/msg00155.html (postfix-jp:02156) 全メールのバックアップ] * [http://www.postfix-jp.info/ML/arc.2/msg00387.html (postfix-jp:01388) 再送のタイミングはどうやって決めるのでしょうか?] * http://www.asi.co.jp/techinfo/unix/postfix.html * [http://www.postfix-jp.info/ML/arc-2.1/msg00424.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はコマンドやファイルへの配送もサポートしませ > ん。 * [http://tmtm.org/postfix/tutorial/virtual.html Postfix チュートリアル - バーチャルドメイン] * [http://satospo.sakura.ne.jp/blog_archives/tech/linux_server/postfix_tips2.html Postfixでのメールサーバ運用Tips - satospo] > * ログの冗長モード > * qshape > * PostfixのQueueLifeTime > * メールのサイズ制限 > * anvilのログ > * Postfixの統計情報 > * anvilの出力調整 > * 配送遅延 > * 逆引きできない送信元を拒否する > * キューの削除 > * 全てのキューの削除 * http://www.postfix-jp.info/docs.html * http://www.postfix-jp.info/jhtml/ * 目的別の設定項目を知りたい際はこちらが良さそう * ex) [http://www.postfix-jp.info/jhtml/rate.html Postfix 速度制御] * [http://www.postfix-jp.info/ML/arc.1/msg00258.html (postfix-jp:259) Re: IPv6 on Postfix] > > mynetworks = IPv4 アドレスブロック, [::1]/128, [IPv6 NLA2ブロック::]/48 * localhostのみから受け付けるときは以下の通り {{{ mynetworks = 127.0.0.0/8, [::1]/128 }}} * [http://www.postfix-jp.info/trans-2.3/jhtml/postqueue.1.html Postfix manual - postqueue(1)] > -f キューをフラッシュします: キューにある全てのメールの配送を試みます。 * 一般ユーザ権限でも実行できる模様 = backup server = * MXを複数記述しておき、メインのSMTPdが死んでいるときにメールを貯めておく * [http://www.akadia.com/services/postfix_mx_backup.html Configuring Postfix as backup MX host] * 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) }}} * 「relayhost」を使うと、外向きの転送が全て「relayhost」を通るように指定されるため、open relayとして拒否される {{{ Apr 30 06:32:00 www27070u postfix/pickup[8562]: 83C8C40DC5D2: uid=1000 from= 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=, size=465, nrcpt=1 (queue active) Apr 30 06:32:00 www27070u postfix/smtp[8706]: 83C8C40DC5D2: to=, 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 : Relay access denied (in reply to RCPT TO command)) }}} * local MTAでの外への送信も出来なくなるので注意 = merge domains conf and maps db = * main.cfで指定出来る「[http://www.postfix.org/postconf.5.html#virtual_mailbox_domains virtual_mailbox_domains]」と「[http://www.postfix.org/postconf.5.html#virtual_alias_domains virtual_alias_domains]」は、それぞれデフォルトで「$virtual_mailbox_maps」「$virtual_alias_maps」が指定されているため、受け取るドメインの一覧と、受け取るアドレスの一覧をそれぞれ一つのファイルにまとめることが可能 * 「[http://www.postfix.org/postconf.5.html#virtual_alias_maps virtual_alias_maps]」については、''The table format and lookups are documented in [http://www.postfix.org/virtual.5.html virtual(5)].''と書かれているが、「[http://www.postfix.org/postconf.5.html#virtual_mailbox_maps 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]) = [http://www.postfix.org/virtual.5.html virtual.5] > Support for a virtual alias domain looks like: > > /etc/postfix/main.cf: > {{{ > virtual_alias_maps = hash:/etc/postfix/virtual > }}} > > Note: 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, address3 > }}} > > The 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 = 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を延ばす必要がある * 起動してから終了するまでの時間では'''ない'''ことに注意 * [http://www.postfix-jp.info/trans-2.3/jhtml/anvil.8.html Postfix manual - anvil(8)] > 診断 > 問題や処理は syslogd(8) に記録されます。 > > 終了時および anvil_status_update_time 秒ごとに、サーバは 測 > 定された最大のカウントと速度を (service, client) 情報やそのイベントに対 > 応する時刻とともにログに記録します。不必要なオーバーヘッドを避 け る た > め、同時制限や速度制限されていない活動の測定はおこなわれません。 * [http://forums.gentoo.org/viewtopic-t-457503-start-0.html Gentoo Forums :: View topic - postifix, anvil and unwanted statistics [SOLVED]] * [http://tech.groups.yahoo.com/group/postfix-users/message/243004 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. * [http://www.davekb.com/browse_computer_tips:postfix_less_anvil_logging:txt 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設定でエラーが起きない環境もある? * [http://www.postfix-jp.info/ML/arc.3/msg00139.html [postfix-jp:02140] Re: : postfix とDOCOMO] > その結果、Postfix から DoCoMo に対して確実にメールが送信出来るパターンは、 > 2通一組で、5秒間隔なら確実に送信可能でした。 > sendmail では、特に特別な事をすることなく、アドレスさえ合っていたら、いくらでも > 送信できました。 * [http://d.hatena.ne.jp/ma8loose/20080529/1212069772 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やホストを書く場合、[]で囲ってあげにゃだめ。 > とかとか。 * [http://d.hatena.ne.jp/ma8loose/20080715/1216136936 なんちゃってアイ○ンポート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 = * [http://www.noppi.jp/diary/?date=20040911#p03 めも日記(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 テーブルに直に書いても大丈夫だろうと…。 (!^!^; > 案の定、問題なかったです。 (!^!^;; * [http://tipszone.jp/20120521_mail_server/ さくらのVPSの設定 - メールサーバーの構築 | TipsZone] > ==== エイリアスの設定 > .forward の様にメールの転送を行いたい時、この設定を行う。バーチャルメールボックスに届いたメールを転送するには、/etc/postfix/virtual ファイルで設定を行う。 次のように転送元と転送先を空白(半角スペースやタブ)で区切って指定すればよい。 転送先はカンマで区切って複数指定できる。 受信メールアドレスに指定するメールアドレスは、「バーチャルメールボックスのアカウントの設定」をしていないものでも良い。 [ [http://www.postfix-jp.info/trans-2.3/jhtml/virtual.5.html 詳細] ] > {{{ > (受信メールアドレス) (転送先1), (転送先2), ... > }}} > 転送しつつ、元のメールボックスにもメールを残しておきたい場合には、転送先に転送元のメールアドレスを書いておけば良い。(転送の無限ループにはなりません。) > > このファイルを変更した後は次のコマンドを実行する。 > {{{ > $ postmap /etc/postfix/virtual > }}}