SMTP応答のおしまい
2006-02-25-1 / カテゴリ: [MTA][SMTP] / [permlink]

とゆうアレで
メール送信ツール(Perlスクリプト)を改造することになった.「SMTP-AUTH対応にしてくれ」とゆーことだけど,内部で使っている Mail::Sender 自体が SMTP-AUTH を使えるので,大したことない.
Postfix に対して動かすと正常なんだけど,おまけで作った maileater なる MTA として動作するスクリプト(クライアントからのあらゆるコマンドに 200 OK 等を返すのみ.DATAとかはちゃんと<CR><LF>.<CR><LF>まで見るけど)があるんだけど,それを(AUTH対応にして)使うとなぜかタイムアウトしてしまう.なんでだろう.

結論
クライアントへの SMTP 応答は,「次行があるときはコードとキーワードの間にハイフンを付与」「最後の応答の時はコードとキーワードの間にスペースを付与」だ.
↓EHLOの応答
250-mozzarella
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250 8BITMIME
し,知らなかった…

スクリプトをチェックすると,最後の応答にもハイフンがついていたため,クライアント側が「サーバさん,次の応答まだ〜?」状態だったようだ.

RFC2821(日本語訳)4章から引用
一般に、EHLOへの応答は複数行になるだろう。応答のそれぞれの行はキーワードと、オプションで1つないし複数のパラメータを含んでいる。以下は複数行応答の一般的な構文であり、これらのキーワードは、最終行以外のすべての行ではコード(250)、ハイフンの続きのあとに来、最終行ではコード、スペースに続く。

今みると,1.5年前のスクリプト,きたねーなー…
まだ,リファレンスを知らなかったころの作品みたいだ.サブルーチンに引数を12個も渡してやがる(笑…えねぇ) なんつーか,一貫性がない.

Postfixインストール(sarge)
2005-09-13-1 / カテゴリ: [linux][debian][MTA][メール][Postfix] / [permlink]

計画としては、spamassassin でもいれようかと。
sarge の Postfix は 2.1.5-9 (2005/09/13現在)

で、まぁ
# aptitude install postfix

外向け(外からの受信/外への配送)に動かす気はないので、とりあえず debconf はほぼ全部デフォで。
General type of configuration は Local only にした。ドメインだけは、ちゃんと設定。
まぁ、ほとんどPostfix + qpopper見ながら設定。あとはmain.cf 和訳

あれ? ローカルオンリーにしたいんだったら、何も設定することがない…
しかも
inet_interfaces = loopback-only
のおかげで、LAN 内からも 25/tcp はアクセスできん。
これじゃ面白くないので、予定変更。

# dpkg-reconfig postfix
にて、Satellite system に変更

すると、debconf の途中で、relayhost parameter の設定が出現。なんだろ、これ。外部リレーの際に、まとめて特定の MTA にリレーさせる設定かなぁ。
ほかに、listen するネットワークアドレス、メールボックスのサイズ、拡張アドレスのデリミタあたりを設定。
debconf 終了後に main.cf 確認したが、relayhost parameter の項目は、
relayhost = smtp.localdomain
になっていた。(↑デフォルトの値)

ついでなので(笑)、ほかの type も調べてみる。
Internet with smarthost を選択して、残りはデフォルト(というより Satellite system の時に選択したもの)で進めると、inet_interface が all に変わった。

まぁ、こんなとこです。

とりあえず、設定をちゃんとする。
# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = $myhostname
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = mail.example.org, cheddar, localhost.localdomain, localhost
myhostname = cheddar
mynetworks = 127.0.0.0/8 192.168.1.0/24
myorigin = /etc/mailname
recipient_delimiter = -
relayhost = 
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)

cheddar は 192.168.1.1/24 で、192.168.1.0/24 は LAN 側。外側はのネットワークからは繋がらないようにした。

って、インストールしたあとで気づいたけど、spamassassin って単にフィルタじゃん。MTA 関係なしに動くのね。しかも Perl か。
まぁいいや、Postfix 好きだし… メインコンテンツの Postfix の文書を sarge 用に書き直す材料だと思えば…orz

まとめおくり postfix
2005-02-01-1 / カテゴリ: [linux][MTA][SMTP][メール][Postfix] / [permlink]

http://lists.debian.or.jp/debian-users/200112/msg00232.html
同じメールで複数あて先の場合、1smtp session で送信するらしい。
qmail は1メール 1セッション(つーか、1プロセス)

拡張アドレス
2005-01-18-1 / カテゴリ: [linux][MTA][Postfix] / [permlink]

"user+string@mail.example.org" 宛で、user 宛になる。(それ以前に
user+stringユーザがいないかを評価)
.forward+string があれば、それに従う
デリミタは main.cf の
recipient_delimiter = char
(デフォルト +)

(cygwin) exim インストール
2004-08-01-2 / カテゴリ: [win][cygwin][MTA] / [permlink]

$ exim-config
Who is the local postmaster? [username]
(/etc/aliasesが作られる)
hostname. Is it "hostname"? (yes/no)
(ホスト名)
Do you want to install the exim daemon as a service? (yes/no) yes
Enter the period of the queue runner, in minutes: [15] 
Do you want the daemon to run with ntsec? (yes/no) yes

Do you want to start the exim daemon as a service now? (yes/no) 

Some programs expect /usr/sbin/sendmail to point to a mailer.
Do you want to point /usr/sbin/sendmail to /usr/bin/exim ? (yes/no) yes

qmail インストール
2004-06-22-3 / カテゴリ: [linux][MTA][qmail] / [permlink]

展開
# tar zxvf qmail-1.03.tar.gz
# cd qmail-1.03
# patch -p1 < ../qmail-date-localtime.patch

ユーザ登録
# mkdir /var/qmail
# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
# useradd -g nofiles -d /var/qmail -s /bin/false qmaild
# useradd -g nofiles -d /var/qmail -s /bin/false qmaill
# useradd -g nofiles -d /var/qmail -s /bin/false qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail -s /bin/false qmailq
# useradd -g qmail -d /var/qmail -s /bin/false qmailr
# useradd -g qmail -d /var/qmail -s /bin/false qmails

コンパイル・インストール
# vi errno.h  (#defined <errno.h>の編集)
# make setup
# make check
# ./config              (DNS(MX)設定済みなら)
(# ./config-fast $FQDN   (DNS(MX)未設定なら?))
# cd /var/qmail/alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# chmod 644 .qmail*

sendmail の入れ替え
# /etc/init.d/sendmail stop
# /etc/rc.d/* のリネーム
# cd /usr/sbin
# mv sendmail sendmail.dist
# chmod 0 sendmail.dist
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

qmailの起動テスト
# cp /var/qmail/boot/home /var/qmail/rc
# /var/qmail/rc &
# echo to:username | /var/qmail/bin/qmail-inject
ユーザ username の ~/Mailbox を確認 (mbox形式)

Maildir への移行
# vi /var/qmail/rc
qmail-start ./Mailbox splogger qmail
 ↓
qmail-start ./Maildir/ splogger qmail
# /var/qmail/bin/maildirmake ~username/Maildir
# chown -R username ~usrename/Maildir
以上

qmail + fml
2004-06-22-2 / カテゴリ: [linux][MTA][fml][qmail] / [permlink]

qmail のインストールは @IT の
http://www.atmarkit.co.jp/flinux/rensai/qmail01/qmail01b.html
を順番にやっていけばよい

fml のインストールは、
/usr/local/fml, /var/spool/ml を作成・fml に chown したのち、
fml ユーザで行う。

qmail における、.(ドット)を含むアドレス
2004-03-18-1 / カテゴリ: [linux][MTA][qmail] / [permlink]

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10111&forum=10&3
http://man.qmail.jp/jman5/dot-qmail.html#subaddress
http://man.qmail.jp/faq/faq4.html#4.6.
.qmail ファイルにおいて、.の部分を:に書き換える。
mailing.list@example.org の場合
.qmail-mailng:list ね

Postfix ログ監視(ログのフォーマット)
2004-03-09-6 / カテゴリ: [linux][MTA][メール][Postfix] / [permlink]

postfix の mail.log から、配送量の統計情報をチェックする際のポインタ

######## local to local ########
Jan 11 12:20:45 cheddar postfix/pickup[31737]: 674497D8092: uid=0 from=<root>
Jan 11 12:20:45 cheddar postfix/cleanup[32665]: 674497D8092: message-id=<20040111032042.674497D8092@mail.example.org>
Jan 11 12:20:46 cheddar postfix/qmgr[296]: 674497D8092: from=<root@mail.example.org>, size=311, nrcpt=1 (queue active)
Jan 11 12:20:46 cheddar postfix/local[32667]: 674497D8092: to=<zaki@mail.example.org>, relay=local, delay=4, status=sent ("|procmail -a "$EXTENSION"")
################################

######## remote(ezweb) to local #######
Jan 11 16:11:58 cheddar postfix/smtpd[4378]: connect from im11omta02.ezweb.ne.jp[61.117.2.67]
Jan 11 16:11:58 cheddar postfix/smtpd[4378]: E5E507D8092: client=im11omta02.ezweb.ne.jp[61.117.2.67]
Jan 11 16:11:59 cheddar postfix/cleanup[4379]: E5E507D8092: message-id=<20040111071146.IHO22830@im11imap12-s0.ezweb.ne.jp>
Jan 11 16:11:59 cheddar postfix/qmgr[296]: E5E507D8092: from=<******@ezweb.ne.jp>, size=1173, nrcpt=1 (queue active)
Jan 11 16:11:59 cheddar postfix/smtpd[4378]: disconnect from im11omta02.ezweb.ne.jp[61.117.2.67]
################################

######## local to remote(ezweb, t.vodafone) #######
Jan 11 16:11:59 cheddar postfix/smtpd[4378]: connect from localhost[127.0.0.1]
Jan 11 16:11:59 cheddar postfix/smtpd[4378]: E87827D8093: client=localhost[127.0.0.1]
Jan 11 16:12:00 cheddar postfix/cleanup[4379]: E87827D8093: message-id=<20040111071146.IHO22830@im11imap12-s0.ezweb.ne.jp>
Jan 11 16:12:00 cheddar postfix/smtpd[4378]: disconnect from localhost[127.0.0.1]
Jan 11 16:12:00 cheddar postfix/qmgr[296]: E87827D8093: from=<fooML-admin@mail.example.org>, size=2097, nrcpt=4 (queue active)
Jan 11 16:12:00 cheddar postfix/local[4381]: E5E507D8092: to=<fooML@mail.example.org>, relay=local, delay=2, status=sent ("|/usr/share/fml/fml.pl /var/spool/ml/fooML")
Jan 11 16:12:20 cheddar postfix/smtp[4385]: E87827D8093: to=<******@ezweb.ne.jp>, relay=lsean.ezweb.ne.jp[219.125.149.6], delay=21, status=sent (250 Ok: queued as D478683)
Jan 11 16:12:21 cheddar postfix/smtp[4386]: E87827D8093: to=<******@t.vodafone.ne.jp>, relay=mx.t.vodafone.ne.jp[210.175.1.210], delay=22, status=sent (250 Message received: 20040111071220328.EFFS.9955@tgmsbmtk01sc.t.vodafone.ne.jp)
################################
Jan 15 12:02:45 cheddar postfix/smtpd[11399]: connect from mgstc03.t.vodafone.ne.jp[210.151.9.74]
Jan 15 12:02:45 cheddar postfix/smtpd[11399]: 1A2A47D8092: client=mgstc03.t.vodafone.ne.jp[210.151.9.74]
Jan 15 12:02:45 cheddar postfix/cleanup[11400]: 1A2A47D8092: message-id=<200401150302.MAA28281@t.vodafone.ne.jp>
Jan 15 12:02:45 cheddar postfix/qmgr[296]: 1A2A47D8092: from=<******@t.vodafone.ne.jp>, size=764, nrcpt=1 (queue active)
Jan 15 12:02:45 cheddar postfix/smtpd[11399]: disconnect from mgstc03.t.vodafone.ne.jp[210.151.9.74]
Jan 15 12:02:45 cheddar postfix/local[11402]: 1A2A47D8092: to=<zaki@mail.example.org>, relay=local, delay=0, status=sent ("|procmail -a "$EXTENSION"")

結論としては…
receive は "$host postfix/smtpd[xxx]: connect" をカウント
deliver(local) は "$host postfix/local"をカウント
deliver(remote) は "$host postfix/smtp ... status=sent"をカウント
deferred は "$host postfix/smtp ... status=deferred"をカウント

debian postfix-tls 設定(sid)
2004-03-09-3 / カテゴリ: [linux][MTA][Postfix] / [permlink]

# apt-get install postfix-tls
# apt-get install sasl2-bin libsasl2-modules libsasl7
カテゴリ: MTA

最終更新時間: 2013-05-02 16:12