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の応答
スクリプトをチェックすると,最後の応答にもハイフンがついていたため,クライアント側が「サーバさん,次の応答まだ〜?」状態だったようだ.
RFC2821(日本語訳)4章から引用
今みると,1.5年前のスクリプト,きたねーなー…
まだ,リファレンスを知らなかったころの作品みたいだ.サブルーチンに引数を12個も渡してやがる(笑…えねぇ) なんつーか,一貫性がない.
メール送信ツール(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現在)
で、まぁ
外向け(外からの受信/外への配送)に動かす気はないので、とりあえず debconf はほぼ全部デフォで。
General type of configuration は Local only にした。ドメインだけは、ちゃんと設定。
まぁ、ほとんどPostfix + qpopper見ながら設定。あとはmain.cf 和訳
あれ? ローカルオンリーにしたいんだったら、何も設定することがない…
しかも
これじゃ面白くないので、予定変更。
すると、debconf の途中で、relayhost parameter の設定が出現。なんだろ、これ。外部リレーの際に、まとめて特定の MTA にリレーさせる設定かなぁ。
ほかに、listen するネットワークアドレス、メールボックスのサイズ、拡張アドレスのデリミタあたりを設定。
debconf 終了後に main.cf 確認したが、relayhost parameter の項目は、
ついでなので(笑)、ほかの type も調べてみる。
Internet with smarthost を選択して、残りはデフォルト(というより Satellite system の時に選択したもの)で進めると、inet_interface が all に変わった。
まぁ、こんなとこです。
とりあえず、設定をちゃんとする。
cheddar は 192.168.1.1/24 で、192.168.1.0/24 は LAN 側。外側はのネットワークからは繋がらないようにした。
って、インストールしたあとで気づいたけど、spamassassin って単にフィルタじゃん。MTA 関係なしに動くのね。しかも Perl か。
まぁいいや、Postfix 好きだし… メインコンテンツの Postfix の文書を sarge 用に書き直す材料だと思えば…orz
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プロセス)
同じメールで複数あて先の場合、1smtp session で送信するらしい。
qmail は1メール 1セッション(つーか、1プロセス)
(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]
展開
ユーザ登録
コンパイル・インストール
sendmail の入れ替え
qmailの起動テスト
Maildir への移行
# 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 ユーザで行う。
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 ね
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 ########
######## remote(ezweb) to local #######
######## local to remote(ezweb, t.vodafone) #######
結論としては…
receive は "$host postfix/smtpd[xxx]: connect" をカウント
deliver(local) は "$host postfix/local"をカウント
deliver(remote) は "$host postfix/smtp ... status=sent"をカウント
deferred は "$host postfix/smtp ... status=deferred"をカウント
######## 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
最終更新時間: 2013-05-02 16:12