Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Error mail in nested MIME format (sendmail and procmail)

67 views
Skip to first unread message

Yasushi Shinjo

unread,
Jan 3, 2005, 10:04:09 AM1/3/05
to
新城@筑波大学情報です。こんにちは。

先月、メールが自分でループするして16GBのファイルができて
しまいました。その原因ですが、procmail が MIME のネストをほ
どけなくて、エラーで返したら、今度は sendmail が管理者に送ろ
うとして、そこでまた procmail に送られて、ループしたというこ
とでした。

一応、sendmail の SendMimeErrors オプションを Off にしたので、
一応の再発防止にはしました。管理者の .forward 消しても
mqueue に入っていた部分でループして効果がなかったりと、けっ
こう慌てました。

これって、sendmail のデフォルトも危険だけど、procmail にも文
句を言いたいと思ったのですが、皆さん、どう思いますか。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\

MAEDA Atusi

unread,
Jan 3, 2005, 10:04:31 PM1/3/05
to
Yasushi Shinjo <y...@is.tsukuba.ac.jp> writes:

> 捓钂奉挕メ挕紥ル挙瑨极捠瑨で挜霋〖挜讙す挙霋し挙茠1挘稈G挘聮の挜諕ァ挜ル挙瑨で挙瓛て
> 挙窉ま挙ま挙窉た挕そ挙螔付挵鴴で挙箳が挕rocmail 挙�MIME 挙螔ネ挜箳ト挙驋ほ
> 挙蓲け挙蕭く挙茠、挜⊕ラ挕紥で捠謷し挙繏ら挕海捙賿は sendmail 挙瑨瓷捦龗荚挙藪流挙�> 挙と挙窉て挕そ挙硳で挙迴た procmail 挙藪流挙閽れ挙茠、挜霋〖挜讙し挙繏と挙う挙�> 挙葤で挙窉た挕�
捇鋻の挿袙赋挙菕も挙ち挙袙ん捖繏い挜霋〖挜讙が挙硳の捈陹の挕謷瓷捦龗荚挙て挙螔メ挕紥ル挙瑨芹捔鲯エ挜閽〖
挙菕ま挙繏瓷捦龗荚挙貟∽挙葤い挙パ挜繏〖挜髵で挙箳。

> 挵鞉炳挕endmail 挙�SendMimeErrors 挜獟プ挜窉ョ挜髵を Off 挙藪し挙繏の挙菕、
> 挵鞉炳挙螔浩捜瘨松捇邟に挙蠏し挙迴し挙繏。挻蓲妄捈話の .forward 捑脪し挙茠も
> mqueue 挙藪掐挙脪て挙た捝魭尸挙菕ル挕紥プ挙窉て捀鷴蔡挙瑨な挙珤っ挙繏り挙葤、挙睊っ
> 挙硳う捁矑て挙迴し挙繏。
>
> 挙硳れ挙脪て挕endmail 挙螔デ挜諕ォ挜霋ト挙鈷错捀睊だ挙睊ど挕rocmail 挙藪も捠�> 挾鐠を捀罀い挙繏い挙葤蛔挙脪た挙螔で挙箳が挕厂挙祾ん挕ど挙蛔挙ま挙箳か挕�
DJB挙蕭ら挕謷芹捔鲯エ挜閽〖挙騇IME挙菕奶捗螔す挙霋の挙瑨そ挙鈷そ挙鈷粗挵銙い挙罀∽挙葤咐挙そ挙で
挙箳ね挕�
MIME挙瑨そ挙髵な挙藪假挵瓛か挙蓲う挙珤は挙葤も挙珤く挕警挙蕭く挙葤も挜霋〖挜讙を捀叫挙箳る挙繏め挙�挜貟ッ挜罀フ挜〖挜霋ド挙驋ヘ挜脪ダ挙珤ら捈钂り捊鼟い挙�MIME挙薳ncapsulate挙窉て) 捙緬流挙窉て
挙窉ま挙の挙蠏、挙蕭ん挙罀か挙蕭あ挙葤蛔挙ま挙箳。sendmail挙藪は挕諱IME挙螔ネ挜箳ト挙�檬挸�挵蕭惧挙蕭ら挜霋〖挜讙∽挙葤い挙怠捁綊も捚䲣っ挙茠い挙迴せ挙髵で挙窉た挙脪け?

挙繏だ挕海挷髵の挜睊〖挜箳で挙蠏≈挜霋〖挜讙を捤蓲ぐ捇艗寥挙邟∽挙菕は捤蓲げ挙蕭か挙脪た挙菕し挙鐠う挕�挜霋〖挜讙の挜⊕ラ挕紥メ挜脪セ挕紥ジ挙驋芹捔鲯し挙钂う挙葤し挙繏ら捇邟ま挙閽な挙わ挙睊で挙箳か挙閽。

挕謷部挷髵か捛蹝流挜⊕ラ挕紥に挙蕭っ挙繏ら捙緬流挙窉な挙∽挙葤い挙肋捘陹が捝瑨寇挙菕し挙鐠う挕�sendmail挙菕も挕endmail.cf挙�O DoubleBounceAddress= 挙菕回捘陹で挙瓛る挙蠏ず挙�挙箳。挙硳こ挙藪は捓鋻滦挙藪戮挙貟啪捔鲯し挙蕭い挜ド挜鞉ス挙驋今挙て挙獟く挙賿き挙菕す挕�
挙蕭お挕mail挙螔眷捁鐠は挕�髵バ挜ン挜箳し挙繏ら捥鋻批捥祾脱挙菕メ挕紥ル挙蠏久挙⊕て挙窉ま挙ま挙箳。
(挙硳れ挙鈷、sender 挙驋今挙瓛垂挙⊕ち挙銙う挙葤う挙迴く捚瘨か挙蕭い挷膾墙捓瓛が挙り挙迴す挙瑨。)

捔皰拍捚貟皇

# 挗瓛笆捔皰に挙鈷击挙繏厦捖陹が挙り挙迴し挙繏ね挕�
> References: <ajioka-1103...@hrsrm1019.gikan.furuno.co.jp>
> <c2nonq$29kj$1...@news.moat.net> <YAS.04Ma...@kirk.is.tsukuba.ac.jp>
> <0403142311...@ecol.ecol.zool.kyoto-u.ac.jp>
> <YAS.04Ma...@kirk.is.tsukuba.ac.jp>
> MIME-Version: 1.0 (generated by SEMI 1.14.3 - "Ushinoya")
> Content-Type: text/plain; charset=ISO-2022-JP
> Message-ID: <m38yhzp...@nospam.maedapc.cc.tsukuba.ac.jp>
> Lines: 37
> User-Agent: Nana-gnus/6.13.12 SEMI/1.14.3 (Ushinoya) FLIM/1.14.4 (Kashiharajing匎-mae) APEL/10.3 Emacs/20.7 (i386-vine-linux-gnu) MULE/4.1 (AOI)
> Subject: Re: Handling mail to postmaster / 挜輶ス挜葤マ挜箳タ挙貟の挜釖〖挜霋の挵窉い
> From: MAEDA Atusi <maeda...@ialab.is.tsukuba.ac.jp>
> Newsgroups: fj.mail.system
> Date: 18 Mar 2004 04:59:15 +0900
>
> y...@is.tsukuba.ac.jp (Yasushi Shinjo) writes:
>
> > > >挙硳の挙钂う挙蕭メ挕紥ル挙驋う挙迴く捈螔て挙繏い挙螔で挙箳が挕rocmail 挙蕭ど挙菕艰
> > > >挙陹近挙睊る挙繏め挙螔ル挕紥ル挙蕭ど挾祾え挙茠布挙祾い挕�> > > Subject 挙た挙陹で挷繏と挙珤な挙陹ま挙粧ん挙珤々
> >
> > 挵鞉炳挕肌挙螔よ挙な procmail 挙螔惮捖で挕謷尸捨鄴∽挙窉て挙ま挙箳。
>
> 1挷髵誊挙螔芹捔鲯エ挜閽〖(挜袙ウ挜髵ス)挙瑨ま挙繏バ挜ン挜箳し挙繏も挙�挜罀ブ挜霋バ挜ン挜�挙葤、
> 挙綊れ挵蕭嘲挙蝡ostmaster挵笒メ挜ル挙驋惰捠虙し挙茠雇挙⊕る挙螔が捨蓲い挙葤蛔挙ま挙箳。
>
> 挜罀ブ挜霋バ挜ン挜箳の挙蹝と挙髵ど挙蠏、捠謷す挙硳と挙鈷で挙瓛な挙珤っ挙繏ス挜褣ム挙菕、捚蓲む挷翏猛挙�> 挙蕭い挙鈷の挙菕す挕ひ挙鐠っ挙葤し挙繏ら捗鎾に挙蠏、挜鎾〖挜稈が捈珤尸挙螔ア挜蓲レ挜箳も挵笒黎挙螔ア挜�> 挜鞉ス挙鈷粗挵銙え挙茠し挙迴っ挙繏メ挜ル挙蕭ん挙茠い挙の挙瑨崔挙迴れ挙茠い挙霋か挙鈷梦挙鞉ま挙粧ん挙瑨、
> 挙綊う挙う挙螔を挙ち挙ちpostmaster挙瑨券捀珤し挙茠滦捊钂し挙茠あ挙矑ら挙鞉た 挙螔ど挙珤な捇�> 捖鍜は捊獟っ挙繏ん挙笒ゃ挙蕭い挙珤と捇讙っ挙茠い挙迴す挕�>
> 挙綊う挙う挜邟ス挙藪は挜鎾〖挜稈が捈珤尸挙菕丹挙艗く挙硳と挙驋袋捖話し挙茠、挜罀ブ挜霋バ挜ン挜箳は挙�> 挙袙ら挙瘨瘦挻蓲し挙茠お挙た捀鍜で捈螔て挙茠し挙迴う挕と挙う捖袙借挙窉か捄は捇讙い挙膾き挙迴せ挙髵。
>
> 挜罀ブ挜霋バ挜ン挜箳を捈钂り捊鼟い挙茠し挙迴え挙袙、postmaster挵笒の挜釖イ挜霋も捚蓲め挙霋ボ挜陹ュ挕�> 挜鄴ま挙菕负挙霋の挙菕は挙蕭い挙菕し挙鐠う挙珤。
>
> 捖繏く挙蜯TA挙藪は挕ダ挜謷ル挜袙ウ挜髵ス挙驋茂挙藪流挙霋か捇貟年挙菕き挙霋怠捛綊が挙膾い挙茠い挙迴す挕�> sendmail.cf 挙�O DoubleBounceAddress=
> qmail 挙�control/doublebounceto
> postfix 挙�2bounce_notice_recipient=
> 挙蕭ど挕�>
> 挙硳の挵笒黎挙騪ostmaster挙菕な挙瘨、doublebounce挙葤か挙螔侍挙螔ロ挕紥カ挜霋メ挜ル挜軖ッ挜�> 挜箳の捥緬涟挙藪し挙茠お挙瘨と捨蓲い挙螔で挙蠏。
>
> # 挜罀ブ挜霋バ挜ン挜箳を捖緬の挜蹝ス挜葤に捙緬流挙箳る挙螔は挕か挙蕭り挻頀副挙蕭の挙菕、挜⊕ラ挕紥に
> # 挙钂る挜霋〖挜讙と挙珤が挼瘨き挙蕭い挙钂う挙藪く挙鞉ぐ挙鞉も捗頀罢挙瑨涩捦讙で挙箳。挜頀〖挜珤ル挙藪瘦
> # 捖笒し挙茠嘉挙茠る挙螔が捥祾岂挙葤蛔挙ま挙箳。
>
> 捔皰拍捚貟皇

Yasushi Shinjo

unread,
Jan 4, 2005, 9:35:55 AM1/4/05
to
新城@筑波大学情報です。こんにちは。

前田さんの記事、vin だと文字化けして読めませんでした。GNUS
だと読めました。末尾に全文付けておきま。ネットワークももどっ
て、やっと平常営業です。

In article <m3y8f96...@nospam.maedapc.cc.tsukuba.ac.jp>
MAEDA Atusi <maeda...@ialab.cs.tsukuba.ac.jp> writes:
> DJBなら「配送エラーをMIMEで通知するのがそもそも間違いだ」と言いそうで
> すね。

私は、MIME がそもそも間違いとも言いたい。それはそれとして、

> MIMEがそんなに邪悪かどうかはともかく、少なくともループを検出するための
> ヘッダフィールドをヘッダから取り除いて(MIMEにencapsulateして) 転送して
> しまうのは、なんだかなあと思います。sendmailには「MIMEのネストが20段階
> 以上ならループ」という機構も入っていませんでしたっけ?

sendmail は、MIME のネストが多すぎるというエラーを出していま
した。
(reason: 550 Error: MIME nesting exceeds safety limit)
これを procmail に送って、procmail がこう言っていました。

550 "|exec /usr/local/bin/procmail || exit 75"... mime8to7: multipart nesting boundary too deep

> ただ、今回のケースでは「ループを防ぐ仕組み」では防げなかったでしょう。
> ループのエラーメッセージを配送しようとしたら止まらないわけですから。

MIME のネスト以外のエラーでも同じ問題が出る可能性はあります
ね。ネストの話だと、procmail と限界と sendmail の限界で、
procmail の方が強ければよかったのかも。

> 「何回か配送エラーになったら転送しない」という設定が必須でしょう。
> sendmailでも、sendmail.cfの O DoubleBounceAddress= で指定できるはずで
> す。ここには絶対に他へ転送しないアドレスを書いておくべきです。

こういうのも DoubleBounce に分類されるんですか。一発メタになっ
ているから、直感的には別のものかなあと思うんだけども。つまり、
「エラーのメール」と「「エラーのメール」に関するエラーのメー
ル」なので。そのメタが20段になった時に DoubleBounce になるっ
てことかな。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\

----------------------------------------------------------------------
>From: MAEDA Atusi <maeda...@ialab.cs.tsukuba.ac.jp>
Newsgroups: fj.mail.system
Subject: Re: Error mail in nested MIME format (sendmail and procmail)
Date: 04 Jan 2005 12:04:31 +0900
Organization: Science Information Processing Center, University of Tsukuba
Message-ID: <m3y8f96...@nospam.maedapc.cc.tsukuba.ac.jp>
Mime-Version: 1.0 (generated by SEMI 1.14.3 - "Ushinoya")
Content-Transfer-Encoding: quoted-printable
X-Trace: gama.is.tsukuba.ac.jp 1104807699 25242 130.158.72.55 (4 Jan 2005 03:01:39 GMT)
X-Complaints-To: use...@gama.is.tsukuba.ac.jp
NNTP-Posting-Date: 4 Jan 2005 03:01:39 GMT
User-Agent: Nana-gnus/6.13.12 SEMI/1.14.3 (Ushinoya) FLIM/1.14.4 (Kashiharajing�,D~-mae) APEL/10.3 Emacs/20.7 (i386-vine-linux-gnu) MULE/4.1 (AOI)
X-Cache: nntpcache 3.0.1 (see http://www.nntpcache.org/)

Yasushi Shinjo <y...@is.tsukuba.ac.jp> writes:

> 先月、メールが自分でループするして16GBのファイルができて
> しまいました。その原因ですが、procmail が MIME のネストをほ
> どけなくて、エラーで返したら、今度は sendmail が管理者に送ろ
> うとして、そこでまた procmail に送られて、ループしたというこ
> とでした。

私の経験でもいちばん多いループがこの手の「管理者あてのメールが配送エラー
でまた管理者へ」というパターンです。

> 一応、sendmail の SendMimeErrors オプションを Off にしたので、
> 一応の再発防止にはしました。管理者の .forward 消しても
> mqueue に入っていた部分でループして効果がなかったりと、けっ
> こう慌てました。
>
> これって、sendmail のデフォルトも危険だけど、procmail にも文
> 句を言いたいと思ったのですが、皆さん、どう思いますか。

DJBなら「配送エラーをMIMEで通知するのがそもそも間違いだ」と言いそうで
すね。

MIMEがそんなに邪悪かどうかはともかく、少なくともループを検出するための
ヘッダフィールドをヘッダから取り除いて(MIMEにencapsulateして) 転送して
しまうのは、なんだかなあと思います。sendmailには「MIMEのネストが20段階
以上ならループ」という機構も入っていませんでしたっけ?

ただ、今回のケースでは「ループを防ぐ仕組み」では防げなかったでしょう。
ループのエラーメッセージを配送しようとしたら止まらないわけですから。

「何回か配送エラーになったら転送しない」という設定が必須でしょう。
sendmailでも、sendmail.cfの O DoubleBounceAddress= で指定できるはずで
す。ここには絶対に他へ転送しないアドレスを書いておくべきです。

なお、qmailの場合は、3回バウンスしたら問答無用でメールは消えてしまいます。
(これも、sender を書き換えちゃうとうまく働かない可能性がありますが。)

前田敦司

# ↓以前にも似た話題がありましたね。

> References: <ajioka-1103...@hrsrm1019.gikan.furuno.co.jp>
> <c2nonq$29kj$1...@news.moat.net> <YAS.04Ma...@kirk.is.tsukuba.ac.jp>
> <0403142311...@ecol.ecol.zool.kyoto-u.ac.jp>
> <YAS.04Ma...@kirk.is.tsukuba.ac.jp>
> MIME-Version: 1.0 (generated by SEMI 1.14.3 - "Ushinoya")
> Content-Type: text/plain; charset=ISO-2022-JP
> Message-ID: <m38yhzp...@nospam.maedapc.cc.tsukuba.ac.jp>
> Lines: 37

> User-Agent: Nana-gnus/6.13.12 SEMI/1.14.3 (Ushinoya) FLIM/1.14.4 (Kashiharajing�,D~-mae) APEL/10.3 Emacs/20.7 (i386-vine-linux-gnu) MULE/4.1 (AOI)
> Subject: Re: Handling mail to postmaster / ポストマスタへのメールの扱い


> From: MAEDA Atusi <maeda...@ialab.is.tsukuba.ac.jp>
> Newsgroups: fj.mail.system
> Date: 18 Mar 2004 04:59:15 +0900
>
> y...@is.tsukuba.ac.jp (Yasushi Shinjo) writes:
>

> > > >このようなメールをうまく捨てたいのですが、procmail などで取
> > > >り除けるためのルールなど教えて下さい。
> > > Subject あたりで何とかなりませんか?
> >
> > 一応、次のような procmail の規則で「分類」しています。
>
> 1回目の配送エラー(バウンス)がまたバウンスしたもの(ダブルバウンス)と、
> それ以外のpostmaster宛メイルを区別して考えるのが良いと思います。
>
> ダブルバウンスのほとんどは、返すこともできなかったスパムで、読む価値の
> ないものです。ひょっとしたら中には、ユーザが自分のアドレスも宛先のアド
> レスも間違えてしまったメイルなんていうのが含まれているかも知れませんが、
> そういうのをいちいちpostmasterが発見して対処してあげられた のどかな時
> 代は終ったんじゃないかと思っています。
>
> そういうミスにはユーザが自分で気づくことを期待して、ダブルバウンスはし
> ばらく保管しておいた後で捨ててしまう、という対処しか今は思いつきません。
>
> ダブルバウンスを取り除いてしまえば、postmaster宛のメイルも読めるボリュー
> ムまで減るのではないでしょうか。
>
> 多くのMTAには、ダブルバウンスを誰に送るか指定できる機能がついています。
> sendmail.cf の O DoubleBounceAddress=
> qmail の control/doublebounceto
> postfix の 2bounce_notice_recipient=
> など。
>
> この宛先をpostmasterでなく、doublebounceとかの別のローカルメイルボック
> スの名前にしておくと良いのでは。
>
> # ダブルバウンスを他のホストに転送するのは、かなり危険なので、エラーに
> # よるループとかが起きないようにくれぐれも注意が必要です。ローカルに保
> # 存して捨てるのが無難と思います。
>
> 前田敦司

IIJIMA Hiromitsu

unread,
Jan 4, 2005, 6:22:49 PM1/4/05
to
いいじまです。

> 前田さんの記事、vin だと文字化けして読めませんでした。GNUS
> だと読めました。末尾に全文付けておきま。

Emacs の内部コードでそのまま出ていましたね。
#....# というバックアップファイルを読み込んで、文字コード変更(C-x RET f
だったかな?)をしないで出すとそうなるようです。

========================================================================
飯嶋 浩光 / でるもんた・いいじま http://www.ht.sakura.ne.jp/~delmonta/
IIJIMA Hiromitsu, aka Delmonta mailto:delm...@ht.sakura.ne.jp

MAEDA Atusi

unread,
Jan 4, 2005, 9:21:47 PM1/4/05
to
IIJIMA Hiromitsu <delm...@ht.sakura.ne.jp> writes:

> > 前田さんの記事、vin だと文字化けして読めませんでした。GNUS
> > だと読めました。末尾に全文付けておきま。

大変失礼しました。

新城さんが再送して下さったことですので、
いちいちキャンセルしたり再送したりはしないことにします。

> Emacs の内部コードでそのまま出ていましたね。
> #....# というバックアップファイルを読み込んで、文字コード変更(C-x RET f
> だったかな?)をしないで出すとそうなるようです。

きちんと追いかけていませんが、?の後にすぐ-が続いた文字列と、日本語の文
字の両方が記事中に含まれると、私が使っているシステムではencodingをうま
く選べなくなるようです。

前田敦司

0 new messages