*Postfixの設定方法 [#f78017d9]

RIGHT:更新日&lastmod();

**postfix-pcreでいたずら [#k70a1110]

 # apt-get install postfix-pcre

postfix-pcreを入れるとperlの正規表現が可能になる

/etc/postfix/main.cfに

 alias_maps = hash:/etc/aliases, pcre:/etc/postfix/aliases.regexp
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^追加
/etc/postfix/aliases.regexpに

 /^dummy[0-9]*(@.*)?$/   dummy

とするとdummy00 dummy9 などのメールがdummy 1アカウントで受信できる

このとき/etc/postfix/aliases.regexpは空ファイルでもいいから作成しておく必要あり

 # touch aliases.regexp

[[perl正規表現 参考:http://www.site-cooler.com/kwl/perl/8.htm]]

**パラメータ [#a534364f]

aliasesで受けたメールをshellなど実行形式に渡して実行するときこのユーザの権限で配送がなされる。~
ただしユーザ作成の必要あり

受信メールの1行目の

Return-Path: <aaa@xxx.ac.jp>
 
のユーザ名にも入る?

 default_privs = nobody


**サブミッションポート [#i886d17a]

pop-before-smtpと併用するには以下の1行のコメントを外しpostfixをリスタート
すればよい。~
下の2行は
 ### SMTP認証を行わない限り、一切のメール送信を拒否する
   -o smtpd_etrn_restrictions=reject
  
 ### 587番ポートへの、スパムメールを使用不能にしておく
   -o smtpd_client_restrictions=permit_sasl_authenticated,reject


クライアントのポートを587にする

''master.cf''

 submission inet n      -       n       -       -       smtpd <=コメントを取る
 #submission inet n      -       n       -       -       smtpd
 #       -o smtpd_etrn_restrictions=reject
 #       -o smtpd_client_restrictions=permit_sasl_authenticated,reject

/etc/servicesを一応確認する
 submission      587/tcp         msa             # mail message submission
 submission      587/udp         msa             # mail message submission

smtp-authやSTLは別途検討する。

** postfixでサブミッションポートで送信 [#p7900e10]

postfixをsmtpクライアントとして利用し、TLS認証でパスワードを設定し、サブミッションポートでメール送信

以下をインストール

 # yum install cyrus-sasl-plain
 # /etc/rc.d/init.d/saslauthd start

以下を追加

''postfix/main.cf''

 #relayhost = [mailserver.isp.tld]
 #relayhost = uucphost
 #relayhost = [an.ip.add.ress]
 
 ##Edit by JE2ISM
 relayhost = [mail.ssl-mail.info]:587
 
 #SSLを有効にする
 smtp_use_tls = yes
 smtpd_use_tls = yes
 
 #認証の設定
 smtp_sasl_auth_enable = yes
 smtp_sasl_password_maps = hash:/etc/postfix/isp_auth
 smtp_sasl_security_options = noanonymou
 smtp_sasl_tls_security_options = noanonymous
 認証を相手に合わせる
 smtp_sasl_mechanism_filter = plain

以下を修正

''postfix/master.cf''

 #smtps     inet  n       -       n       -       -       smtpd
 smtps     inet  n       -       n       -       -       smtpd
 #  -o smtpd_tls_wrappermode=yes
   -o smtpd_tls_wrappermode=yes
 #  -o smtpd_sasl_auth_enable=yes
   -o smtpd_sasl_auth_enable=yes
 #  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
   -o smtpd_client_restrictions=permit_sasl_authenticated,reject
 #  -o milter_macro_daemon_name=ORIGINATING

パスワードの設定

''postfix/isp_auth''

 [mail.ssl-mail.info]:587 okada2@wesden.net:*****

DB化を行う(必要)

 # postmap /etc/postfix/isp_auth

postfix再起動

 # /etc/rc.d/init.d/postfix restart



**メールのリレー等 [#rf48be33]
外向けのメールサーバと内部にユーザアカウントのあるサーバという構成にしたとき
外部から内部へのリレーの仕方について

    ----------------                           ---------------
    |DMZ上のサーバ |-----------(F/W)-----------|内部のサーバ |
    ----------------                           ---------------
                          構成

***DMZ上のサーバから内部サーバへリレー [#mbc7ec3f]

/etc/postfix/main.cfで
以下の行(#で始まる部分以外)を記述
 
 # TRANSPORT MAP
 #
 # Insert text from sample-transport.cf if you need explicit routing.
 transport_maps = hash:/etc/postfix/transport

/etc/postfix/transportに2行追加

ドメイン宛(@hogehoge.ac.jp)
 hogehoge.ac.jp smtp:[192.168.1.2] (又はsmtp:xxx.hogehoge.ac.jp)

その他マシンも宛ても送る(@xxx.hogehoge.ac.jp)この記述ではドメイン宛はリレーしない。(両方必要)
 .hogehoge.ac.jp smtp:[192.168.1.2] 

設定が完了したら、(変更するごとに実行の必要あり)

 # /usr/sbin/postmap /etc/postfix/transport

/etc/postfix/transport変更するごとに実行し、/etc/rc.d/init.d/postfix reloadも行う必要がある

postmapを実行したときのログ(/var/log/maillog)
 Jan 19 11:01:00 vmware40 postfix/pickup[1987]: 9A6DD1BB8A3: uid=0 from=<root>
 Jan 19 11:01:00 vmware40 postfix/cleanup[2532]: 9A6DD1BB8A3: message- id=<20070119020100.9A6DD1BB8A3@vmware40.abc-u.ac.jp>
 Jan 19 11:01:00 vmware40 postfix/qmgr[1988]: 9A6DD1BB8A3: from=<root@vmware40. abc-u.ac.jp>, size=624, nrcpt=1 (queue active)
 Jan 19 11:01:00 vmware40 postfix/smtp[2534]: 9A6DD1BB8A3: to=<root@vmware40.abc-u.ac.jp>, orig_to=<root>, relay=uso5004.mie-chukyo-u.ac.jp[192.244.75.246], delay=0, status=sent (250 Ok: queued as B3579A1C00B)
 Jan 19 11:01:00 vmware40 postfix/qmgr[1988]: 9A6DD1BB8A3: removed

***内部サーバのサーバからDMZ上へリレー [#ta635a90]

/etc/postfix/main.cf の以下の部分を編集

 local_recipient_maps =
	あて先不明なメールの処理を記述するパラメータで、何も指定しないことで、あて先不明のメールを処理する。
 myoriginが設定してあれはドメインなしアドレスはlocal_recipient_mapsの設定とは無関係に送れる
 relayhost = [192.168.1.2]	デフォルトのリレーホストを指定。	
 fallback_transport = smtp:[192.168.1.2]
	ローカルに登録されていないユーザへのメールを転送する先を記述。
 ただし、myoriginでそのサーバに転送されるのでローカルからそのサーバに送るときは意味がない
 relayhostはその他のサーバに送るときにもリレーしてくれる。
 myoriginを転送先に設定すればよい。これはラウンドロビンなんかの複数サーバで同一
 ドメインで受けて、存在しないユーザを別サーバに転送するときなんかに有効か?
ただし、転送先アドレスが受信できないとエラーで帰ってくる。(例えばyy@xxx.abc.ac.jpが宛先のとき転送先がxxx.abc.ac.jpを受け取れない場合)

受け取れないときののログ

 Jan 19 11:14:56 uso5004 postfix/qmgr[27447]: 526BEA1C00B: from=<okada@vmware40. abc-u.ac.jp>, size=569, nrcpt=1 (queue active)
 Jan 19 11:14:56 uso5004 postfix/smtp[2541]: 526BEA1C00B: to=<okada@vmware40.abc-u.ac.jp>, relay=none, delay=0, status=bounced (Name service error for name=vmware40.abc-u.ac.jp type=A: Host not found)
 Jan 19 11:14:56 uso5004 postfix/cleanup[1748]: 70374A1C00C: message- id=<20070119021456.70374A1C00C@uso5004.abc.ac.jp>
 Jan 19 11:14:56 uso5004 postfix/qmgr[27447]: 70374A1C00C: from=<>, size=2392, nrcpt=1 (queue active)
 Jan 19 11:14:56 uso5004 postfix/smtp[2541]: 70374A1C00C: to=<okada@vmware40.abc-u.ac.jp>, relay=none, delay=0, status=bounced (Name service error for name=vmware40.abc-u.ac.jp type=A: Host not found)

たとえばuso500xなんかで自分以外ユーザに送るときTo:にabcとすればabc@abc.ac.jpとなるようにするにはmain.cfで

 myorigin = abc.ac.jp

とする。もっともfromもデフォルトでは@abc.ac.jpになってしままう(たとえば、myorigin=$mydominのときはrootからメールを出すとFromにはroot@$mydominにmyorigin=$myhostのときはFromにはroot@$myhostになる)~ 
また、メーラではDelivered-To:は@以降が補完されるが、To:は補完されないものもある

&color(red){コマンドラインからmailコマンドで実験するときはmyoriginでTo:が補完されるので設定しておいたほうがいい。};

また。myorigin設定したドメインのメールサーバに本サーバにローカルから投函されたメールが自動的に配送される。(fallback_transportの設定とは無関係に配送)

(e.g.) 宛先okadaでここに投函するとokada@(myoriginの値)というアドレスが宛先になり、(myoriginの値)サーバに転送


***ドメイン等を変更して転送 [#r03081a5]

abc.comにユーザabcがいない場合aaa.comに転送

 [Aサーバ]  --(abc@abc.com) -->[abc.comサーバ] ==(abc@aaa.comとして) ==> [aaa.comサーバ]

 local_recipient_maps = 
 luser_relay = $user@aaa.com

 
**Postfix2.xのインストール [#q9032697]

[[ここ:http://www.postfix.org/download.html]]からDownload. 

postfixというユーザとpostfix,postdropというグループを作成。rpmで旧バージョンで
インストールされているとすでに作成されている。

/etc/passwd
 postfix:x:128:128:postfix:/var/spool/postfix:

/etc/group
 postfix:x:128:
 postdrop:x:129:

 $ tar zxvf postfix-2.2.5.tar.gz
 $ cd postfix-2.2.5
 $ make (./configureはしない)
 make -f Makefile.in MAKELEVEL= Makefiles
 (echo "# Do not edit -- this file documents how Postfix was built for your  machine."; /bin/sh makedefs) >makedefs.tmp
 set +e; if cmp makedefs.tmp conf/makedefs.out; then rm makedefs.tmp; \
 else mv makedefs.tmp conf/makedefs.out; fi >/dev/null 2>/dev/null
 
 (略)

 [src/tlsmgr]
 gcc -Wmissing-prototypes -Wformat  -g -O -I. -I../../include -DLINUX2 -c  tlsmgr.c
 gcc -Wmissing-prototypes -Wformat  -g -O -I. -I../../include -DLINUX2 -o tlsmgr tlsmgr.o ../../lib/libmaster.a ../../lib/libtls.a ../../lib/libglobal.a ../../ lib/libutil.a -ldb -lnsl -lresolv
 cp tlsmgr ../../libexec
 
 $ su
 # /etc/rc.d/init.d/postfix stop
 # /etc/rc.d/init.d/pop-before-smtp stop
 # make upgrade (make installをするとインストール先等いろいろ聞かれるが、
         upgradeだと現在の/etc/postfix/main.cfから判断してくれる。
                 rpmインストールされているときは upgradeが簡単)
 
 set -e; for i in src/util src/global src/dns src/tls src/master src/postfix   
 src/smtpstone src/sendmail src/error src/pickup src/cleanup src/smtpd src/local
 src/lmtp src/trivial-rewrite src/qmgr src/oqmgr src/smtp src/bounce src/pipe
 src/showq src/postalias src/postcat src/postconf src/postdrop src/postkick src/
 postlock src/postlog src/postmap src/postqueue src/postsuper src/qmqpd src/
 spawn src/flush src/verify src/virtual src/proxymap src/anvil src/scache src/
 discard src/tlsmgr; do \
  (set -e; echo "[$i]"; cd $i; make 'CC=gcc -Wmissing-prototypes -Wformat '   update MAKELEVEL=) || exit 1; \
 done
 [src/util]
 
 (略)
 
 Editing /etc/postfix/master.cf, adding missing entry for discard service
 Editing /etc/postfix/master.cf, adding missing entry for tlsmgr service
 
     Note: the following files or directories still exist but are no
     longer part of Postfix:
  
      /etc/postfix/pcre_table /etc/postfix/regexp_table
 
 You have mail in /var/spool/mail/okada
 
------- make install の場合 -----------------------------
 /etc/postfix/main.cf を編集
 /etc/postfix/aliases に root: 自分のアカウント名 を追加
---------------------------------------------------------

 # /usr/sbin/postfix check
 (何も帰らない)
 # /etc/rc.d/init.d/postfix start
 # /etc/rc.d/init.d/pop-before-smtp start

***運用設定 [#ge64df5f]

インストール後に設定するファイルは/etc/postfix/main.cfで
以下の内容ように設定する
 inet_interfaces = all <--CentOSの場合ここがlocalhostになっていて外部から受信できない
 mydomain = abc.ac.jp
 以下の2つは送り元にホスト名を入れるか否かを決める
 myorigin = $myhostname <:---user@xxx.domain.jp
 myorigin = $mydomain   <:---user@domain.jp
 mydestination = $myhostname, localhost.$mydomain
 (もし、ドメインのメールサーバにして、ドメイン宛てのメールを受け取るときは
 mydestination = $myhostname, localhost.$mydomain, $mydomain
 とする)
 mynetworks = 192.xxx.xxx.0/24, 127.0.0.0/8, 10.0.0.0/8
 smtpd_recipient_restrictions = permit_mynetworks,reject_non_fqdn_recipient,
       check_client_access hash:/etc/postfix/pop-before-smtp,
       check_relay_domains
 (pop-before-smtpの設定)
 relayhost = mail.abc.ac.jp
 (リレーホストの設定)
 #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (Vine Linux)
 smtpd_banner = $myhostname ESMTP $mail_name
 (これはメールサーバの素性をあかさないための設定
 
 #Edit by JE2ISM
 ##allow_percent_hack = no
 allow_percent_hack = yes
 
 #Edit by JE2ISM
 # Limit Mssege 30MB
 message_size_limit = 31457280
 (一度に送れるメッセージサイズのMax default:10MB)
 # MailBox Size 400MB
 mailbox_size_limit = 409600000
 (MailBoxの最大容量 default:50MB)

メールアドレスが間違っているとき「unknown user: "f05999"」
のようなメッセージを送信元に返すときは
 unknown_local_recipient_reject_code = 550

指定なしは550がデフォルトのようだ~
rejectするだけで送信元にメッセージを返さないなら
 unknown_local_recipient_reject_code = 450
 550:メールで拒否を通知(reject mail) 450:一定時間後に再試行(try again later)

550のときは以下のような送信元maillogになる

 May 23 14:42:38 uso5004 postfix/smtp[22124]: F3A34A1C066: 
 to=<abc@wwwism.dyndns.org>, relay=wwwism.dyndns.org[202.59.191.46], delay=1, 
 status=bounced (host wwwism.dyndns.org[202.59.191.46] said: 550 
 <abc@wwwism.dyndns.org>: Recipient address rejected: User unknown in local
 recipient table (in reply to RCPT TO command))

450のときは以下のような送信元maillogになる
 May 23 14:39:07 uso5004 postfix/smtp[22085]: 79331A1C065: 
 to=<abc@wwwism.dyndns.org>, relay=wwwism.dyndns.org[202.59.191.46], delay=0,
 status=deferred (host wwwism.dyndns.org[202.59.191.46] said: 450
 <abc@wwwism.dyndns.org>: Recipient address rejected: User unknown in local 
 recipient table (in reply to RCPT TO command))

450のときは送信側が受信元が今はだめだが時間が経ってからもう一度送っていいよという意味でmailキューに再送用に残す

 #mailq
 -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
 70A7EA1C034      690 Wed May 23 14:25:56  okada@mie-chukyo-u.ac.jp
 (host wwwism.dyndns.org[202.59.191.46] said: 450 <abc@wwwism.dyndns.org>: 
 Recipient address rejected: User unknown in local recipient table (in reply to
 RCPT TO command))
                                         abc@wwwism.dyndns.org


以下のようなパラメータも追加できる
 disable_vrfy_command=yes
 vrfyコマンドを無効にする。vrfyコマンドとはユーザーが存在するかどうか問い合わせるためのもの

 smtpd_helo_required=yes
 helo/ehloコマンドを要求する。helo/ehloコマンドは接続元のホストを識別するための
 コマンド。自らのホスト名を通知しない接続を拒否するように設定しておく。

 strict_rfc821_envelopes=no
 RFC821の形式に合わないアドレスは拒否する。RFC821はSMTPによるメール転送を定めた 規格。

***メール削除 [#w3549fc0]

''/etc/postfix/aliase''

 dummy:  /dev/null

でdummy宛てメールは削除される


**スパム対策 [#i7a45871]
ただし、これを行うと全てそれらのサイトからのメールを拒否するので注意
 maps_rbl_domains=relays.ordb.org

rblとは不正中継を行う可能性があるサイトのブラックリスト

 smtpd_client_restrictions=reject_maps_rbl, reject_unknown_client
 reject_maps_rblは上で指定したブラックリストに登録されたホストからの接続を拒否
 reject_unknown_clientはnameの逆引きができないとき接続を拒否するせって

同時に送れるメッセージの制限
 default_destination_concurrency_limit
 パラメータ (デフォルト: 20) は同じ配送先に同時に送ることができるメッセージの
 数 メッセージ1件ごとにコネクション張るには1にする

特定の配送チャネル (local, smtp, uucp 等)に対して上書きすることができる
 local_destination_concurrency_limit パラメータは 同じローカル受信者に対して
 同時に配送するメッセージの数を制御します. 2くらいが推奨

変更後は

 # /etc/rc.d/init.d/postfix reload

で変更内容を反映させる。

***リレーチェックをしてくれるサイト[[RBL.JP:http://www.rbl.jp/]] [#s419904a]


そのチェックで以下のような%入りアドレスでリレーするとチェックされたときは
main.cfの
 allow_percent_hack = no
を
 allow_percent_hack = yes
にする。

[リレーチェックの結果]
中継テスト その6
 >>> RSET
 <<< 250 Ok
 >>> MAIL FROM: <spamtest@xxx.xxx.xx.xxx>
 <<< 250 Ok
 >>> RCPT TO: <relaytest%rbl.jp@[xxx.xxx.xx.xxx]>
 <<< 250 Ok
 relay accepted!! 

***spam対策 [#fbf46e7f]
''Headerでチェック''

main.cfに
 #header_checks = regexp:/etc/postfix/header_checks
のコメントをはずす

/etc/postfix/header_checks
に
 # It refuses by a partner's subject.
 
 /^Subject: je2ism/       REJECT
 (Subject欄がje2ismで始まるメールを拒否)
 
 # It refuses in a FROM address.
 
 #/^From: okada/          REJECT
 (From欄がokadaで始まるメールを拒否)
 /^From:.*<#.*@.*>/ REJEC
 (From欄が何もないメールは拒否)
 /^From: .*@abc.ne.jp/        REJECT
 (From欄がabc.ne.jpからのメールは拒否)

''本文でチェック''

main.cfに
 body_checks=regexp:/etc/postfix/body_checks
を追加
/etc/postfix/body_checksに
 /spam/REJECT
 (本文中にspamというキーワードがあればメールを拒否)

 /name=.*\.scr/  REJECT
 (添付ファイルが.scrが含まれればメールを拒否)


変更後は
 # /etc/rc.d/init.d/postfix reload
を実行

''処理方法について''
-OK:受信する(Ver2.1以降はDUNNO推奨)
-IGNORE:一致した行をヘッダから削除
-REJECT:受信拒否して、エラーメールを返す
-DISCARD:受信して破棄する

''maillog''

[REJECT]
 Aug 27 13:17:17 uso5005 postfix/cleanup[1154]: 718A62205E6: reject: header
 From: "=?ISO-2022-JP?B?GyRCMixFRCEhTklMQBsoQg==?=" <okada@wwwism.dyndns.org>
 from mail.mie-chukyo-u.ac.jp[192.244.75.5]; from=<okada@wwwism.dyndns.org>
 to=<okada@uso5005.mie-chukyo-u.ac.jp> proto=ESMTP helo=<mail.mie-chukyo-
 u.ac.jp>: Message content rejected

[DISCARD]
 Aug 27 13:41:58 uso5005 postfix/cleanup[2264]: 91E192205E6: discard: header
 From: "=?ISO-2022-JP?B?GyRCMixFRCEhTklMQBsoQg==?=" <okada@wwwism.dyndns.org>
 from mail.mie-chukyo-u.ac.jp[192.244.75.5]; from=<okada@wwwism.dyndns.org>
 to=<okada@uso5005.mie-chukyo-u.ac.jp> proto=ESMTP helo=<mail.mie-chukyo-
 u.ac.jp>


**別ドメインのメールも受け取れるようにする [#i39ea045]

/etc/postfix/main.cfの

 mydestination = $myhostname, localhost.$mydomain, $mydomain, abc.ne.jp
                                                             ^^^^^^^^追加ドメイン
 にドメイン名を追加する。

 IPアドレス指定は[192.168.1.1]のように指定する

**送られたメールアカウントでコマンドを実行するには [#hc8de1b9]

/etc/postfix/aliasesに

 (アカウント名): "|(コマンドパス)"

 comingout: "|/home/postgres/comingout/perl/comingout.pl"
 のように記入する

*DDNS [#zf43db92]

DDNS(dyndns.org)のMail Exchanger (optional)に指定 したメールを受け取るときにも必要。
例えば
 Mail Exchanger (optional): abc.ne.jp
と設定すると

 wwwism.dyndns.org.   86400INMX10 abc.ne.jp.
とDNSに書かれ、
abc.ne.jpにwwwism.dyndns.org宛てメールが転送される。
Backup MX?:DDNSのIPにもメールを転送するときにチェックを入れる。普通はチェックの必要なし。

自宅にメールサーバを立ち上げルータでPort25(smtp)をフォワードさせるときはMail Exchanger:にwwwism.dyndns.orgとしてpostfixの設定をwwwism.dyndns.orgも受信可能にするとokada@wwwism.dyndns.orgでメールが受け取れる。 

自宅のサーバをsmtpサーバに設定

main.cfを
 myhostname = pc85xxxx.axxgo2.ne.jp  <---DHCPで割り振られたHost名
 
 mydomain = axxgo2.ne.jp     <---プロバイダのドメイン名
 
 mydestination = $myhostname, localhost.$mydomain $mydomain
 
 mynetworks = 168.168.10.0/24, 127.0.0.0/8
 
 relayhost = mail.axxgo2.ne.jp    <---プロバイダのsmtpサーバ

***キューの表示 [#ffc89ab9]

 $ mailq
 -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
 2932C2DEA16*    2761 Fri Jan  6 03:20:03  MAILER-DAEMON
                                          info@mail.uzwr.com
 
 1C34F2DEA53*    2655 Fri Jan  6 06:48:21  MAILER-DAEMON
 
                                          info@mail.wubv.com
 (略)
 
 63E992DE9F1     7372 Fri Jan  6 02:38:31  MAILER-DAEMON
                  (connect to rothen.net[216.168.224.70]: Connection timed out)
                                          colmonr@rothen.net

 6B76F2DEA1C     5917 Thu Jan  5 21:24:13  MAILER-DAEMON
 (host mx1.mail.yahoo.co.jp[202.93.77.231] said: 421 VS14-RT5 Mailbox bounce  arrival rate exceeds system limit (#4.2.2))
                                          fkirij798@yahoo.co.jp

 -- 1471 Kbytes in 202 Requests.

***キュー削除 [#wd18f6c3]

Postfix2.1以降なら、

 bounce_queue_lifetime = 86400
でユーザが出したメールとは別に、bounceした結果作成されるメールがキューに留まる時間を制御。デフォルトは5日(432000 MAX:8640000)

**その他のキュー関係 [#a5dac97e]
 queue_run_delay (デフォルト: 1000 秒) 
キュー マネージャが遅延メールのキューをスキャンする頻度。 

 maximal_queue_lifetime (デフォルト: 5 日) 
メッセージが 配送不能として送り返されるまでにキューに留まる期間。 

 minimal_backoff_time (デフォルト: 1000 秒) 
メッセージが 検索されない最小時間および「死亡」配送先に手を出さない最小時間。 

 maximal_backoff_time (デフォルト: 4000 秒) 
配送に 失敗してからメッセージを見ない最大時間。


''(手動で対処)''
mailq と打ち込んで,キューにメールが数百
以上たまっていたら,

 mailq | grep MAILER-DAEMON | sort +3 > hoge

とかして,数時間以上たった MAILER-DAEMON からのメールのキューについては,

 postsuper -d キュー番号

 # /usr/sbin/postsuper -d 8B3296529B
 postsuper: 8B3296529B: removed
 postsuper: Deleted: 1 message

でメールキューから削除,通常ユーザ権限でかまいませんので
sendmail -q を実行すれば,キューにたまったメールを全て配送する

''メッセージの内容表示''

 # /usr/sbin/postcat -q QUEUE_ID

 # /usr/sbin/postcat -q 6D3221234FCA
 *** ENVELOPE RECORDS deferred/6/6D3221234FCA ***
 message_size:             913             430               3               0
 message_arrival_time: Thu Jan 13 12:17:19 2011
 (略) 
 recipient: neksus@www.matsusaka-u.ac.jp
 *** MESSAGE CONTENTS deferred/6/6D3221234FCA ***
 Received: from 28c07nc7e.com (unknown [**.**.**])
 (略)
 *** HEADER EXTRACTED deferred/6/6D3221234FCA *** 
 *** MESSAGE FILE END deferred/6/6D3221234FCA ***

''メッセージキューの強制転送(全部)''

 postfix flush

''メッセージキューの全削除''

 /usr/sbin/postsuper -d ALL

**不明な宛先にバウンスさせない [#t08eea7d]

自分のサーバ存在しないアカウント宛のメールを受けないようにする~
これで、メールアドレスを詐称された無実の人にも無用なエラーバウンスを出さなくなる~
以下の例は$alias_mapsと/etc/passwdにユーザがいないときはエラーを出す

main.cf

 local_recipient_maps = $alias_maps unix:passwd.byname

$alias_mapsだけでのユーザしか認めない場合、/etc/passwdのユーザも認めないときは

 local_recipient_maps = $alias_maps

と設定する

2.xはデフォルトでOn 1.xも使える。
奥村先生参考ページ

--------------------------------------------------------------------------------
RIGHT:[[元ページ:https://wwwism.dyndns.org/hp/linux/postfix.htm]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS