[#4754] Now,I am starting ruby. — mamoru@... (Mamoru Matushita)

先日、初めて投稿したつもりだったのですが間違えて

14 messages 1997/10/02

[#4891] mixin - singleton method inheritance, const etc... — shugo@... (Shugo Maeda)

前田です。

13 messages 1997/10/10

[#5000] ruby 1.0-971015 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

14 messages 1997/10/15

[#5056] RubyでOODB — hisanori@...

松尾です。

20 messages 1997/10/20
[#5057] Re: RubyでOODB — matz@... (Yukihiro Matsumoto) 1997/10/20

まつもと ゆきひろです

[#5065] Re: RubyでOODB — hisanori@... 1997/10/20

松尾です。

[#5066] Re: RubyでOODB — matz@... (Yukihiro Matsumoto) 1997/10/20

まつもと ゆきひろです

[ruby-list:5047] Re: mail address class

From: shugo@... (Shugo Maeda)
Date: 1997-10-18 16:25:16 UTC
List: ruby-list #5047
前田です。

In message "[ruby-list:5044] Re: mail address class"
akira yamada / やまだあきら <akira@linux.or.jp> wrote:

|やまだあきらです. 風邪気味でボーッとしてます.

最近風邪が流行ってるみたいですね。
お大事に...。

|S> RFC822をサブクラス化してMIMEMessageクラスを作ってみました。
|
|とってきて眺めただけで, まだ試してはいませんが
|これは嬉しいです! なんか使われてるって感じで(^_^)

継承で再利用しようとしたところまではよかったのですが,
結局スーパークラスに手を入れるなどという邪悪なことを
してしまいました(^^;

|あと, mime.rb をつらつらと眺めていて
|structured field のデリミタで分割できると
|あとあと嬉しそうだよなあと思いましたので
|そのように RFC822.rb に改造を加えてみました.

えっと,これはどの部分なのでしょう。

|mime.rb について気付いた点は(RFC を読んでいませんが)
|ヘッダの Content-*: は structured じゃないのかな? って点です.
|コメントとか入っても良さそうな気がするので, 
|もしそうならそれを考慮にいれておかなくてはならないでしょう.

そうでした,uncommentを使うようにしました。
でもContent-Dispositionについてのみ扱いが違うようです。
RFC2045を眺めた感じではContent-Dispositionではコメントは
許されないように読めたのですが,どなたか詳しい方ご教授く
ださい(^^;

|あと, MIME-Version: は特に見なくてもよいのでしょうか?

たぶん今のところ特に見なくても問題ないと思います。
参照したい時はmsg.header["Mime-version"]とすればよいかなと。

|そろそろ body についての扱いも入れなくては > RFC822

もしそうなるのでしたら,initializeを

  def initialize(f)
    parseheader(f)
    parsebody(f)
  end

みたいに分けていただけると,ありがたいです。

|# ある程度のサイズ以上の body については
|# 一時ファイル作るとかしたいような.

たいていの場合はそこまでしなくても大丈夫ではないでしょうか。
でも,5MBのメールの話とか聞くと恐くなりますね(^^;

|これをみると Subject: ヘッダでのソートや
|MIMEMessage < RFC822 なクラスへのパターンマッチングが
|できるようになっていると嬉しい感じがしますね.
|
|# 色々考えたいけどあたまが回らない…

sortをイテレータとして使えば,たいてい事足りるので,<=>は
今ぐらいでよいような気もしますね。
message/partialについては順番通りにbodyを連結してMIMEMessage
のコンストラクタに渡せば,うまく復元されることを確認できました。

それとmultipart/signedなパートを検証するのにヘッダの元の情報が
必要なので添付するパッチを採用していただけないでしょうか?
これと合わせて,MIMEMessage#to_sで元のメールが再現されるように
したmime.rb(0.4)を,

http://www.aianet.ne.jp/~shugo/ruby/mime.rb

に置きました。

以下のようなスクリプトで試したところ,multipart/signedパートを
うまく検証できました。
# 例外処理は省略してます。

f = open(file)
msg = MIMEMessage.new(f)
f.close
mainpart = msg.body[0]
sigpart = msg.body[1]
f = open("/tmp/foo", "w")
f.write(mainpart.to_s.gsub(/([^\r]|())\n/) {$1 + "\r\n"})
f.close
f = open("/tmp/foo.sig", "w")
f.write(sigpart)
f.close
print `pgp /tmp/foo`

前も思ったのですが,FileのクラスメソッドにELispのmake-temp-name
みたいなのがあると,テンポラリファイルを作るのが楽だと思うのです
が,いかがでしょう。
# ひょっとしてもうあります?

-- 
前田 修吾

Attachments (1)

RFC822.rb.diff2 (372 Bytes, application/octet-stream)

In This Thread