[#23805] net/smtp — 佐藤 大輔 <densuke@...2.so-net.ne.jp>

佐藤です。

26 messages 2000/07/12
[#23806] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23808] Re: net/smtp — 佐藤 大輔 <densuke@...2.so-net.ne.jp> 2000/07/12

佐藤です。

[#23809] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23811] Re: net/smtp — Minero Aoki <aamine@...> 2000/07/12

あおきです。

[#23812] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23890] Ruby Entry Package and cygwin1.dll — Noritsugu Nakamura <nnakamur@...>

25 messages 2000/07/18
[#23895] Re: Ruby Entry Package and cygwin1.dll — WATANABE Hirofumi <eban@...> 2000/07/18

わたなべです.

[#23896] Re: Ruby Entry Package and cygwin1.dll — Noritsugu Nakamura <nnakamur@...> 2000/07/18

[#23897] Re: Ruby Entry Package and cygwin1.dll — Katsuyuki Komatsu <komatsu@...> 2000/07/19

小松です。

[#23898] Re: Ruby Entry Package and cygwin1.dll — WATANABE Hirofumi <eban@...> 2000/07/19

わたなべです.

[#23899] Re: Ruby Entry Package and cygwin1.dll — Katsuyuki Komatsu <komatsu@...> 2000/07/19

小松です。

[#23923] Re: [ruby-dev:10353] Re: should prohibit `module_function' for class Class — Masatoshi SEKI <m_seki@...>

11 messages 2000/07/19

[#23940] String#unpack と scanf の関係 — kiwamu <kiwamu@...>

こんにちは。岡部@東京都立大学と申します。

16 messages 2000/07/20

[ruby-list:24018] ML server (Re: SMTP server (mail filter proxy))

From: IWAOKA Masahiro <iwaoka@...>
Date: 2000-07-26 01:42:40 UTC
List: ruby-list #24018
いわおかです。

On Wed, Jul 26, 2000 at 09:57:08AM +0900, Hideto ISHIBASHI wrote:
> いまは qmail+ezmlm で ML を運用しています。そこで、

そういえば、以前も話題になったかと思うんですが、ruby で ML server
を書かれてる方はいらっしゃいませんでしょうか?

とりあえず、ヘッダを書き変えるだけでアーカイブとかの機能は全く無い
ものを使ってはいるんですが、、、

いわおか

# 簡単すぎてあまり意味は無いと思いますが、一応公開。

#!/usr/local/bin/ruby
#
#	Simple ML filter by iwaoka@tuat.jac-net.com Nov.17,1999
#				revised for qmail Dec.2,1999
#
#       $Id: mlserv.rb,v 1.4 2000/07/26 01:36:44 iwaoka Exp $
#
# entries for /etc/aliases:
#	hoge-ml:		"|/this/script MLname \"COMMENT\""
#	hoge-recipients:	:include: /member/list/file
#	hoge-request:		administrator

#SENDMAIL = "/usr/sbin/sendmail -oi"
SENDMAIL = "/var/qmail/bin/sendmail"
MLNAME = ARGV[0]
COMMENT = ARGV[1]
SERVER = `hostname`.chop
#DOMAIN = SERVER
DOMAIN = SERVER.sub(/^[^.]*\./, '')

REPLYTO = MLNAME + "@" + DOMAIN
ERRORSTO = MLNAME + "-request@" + DOMAIN

class Mail

  def initialize(f)
    unless defined? f.gets
      f = open(f, "r")
      opened = true
    end

    @header = []
    @body = []
    begin
      i = 0
      while f.gets()
	next if /^From /	# skip From-line
	break if /^$/		# end of header
	if /^\s+/ 
	    @header[i - 1] += $_
	else
	    @header.push($_)
	end
      end
  
      return unless $_

      while f.gets()
	break if /^From /
	@body.push($_)
      end
    ensure
      f.close if opened
    end
  end

  def header
    return @header
  end

  def body
    return @body
  end
end

mail = Mail.new(STDIN)

rplto = nil
mail.header.each {|line| rplto = true if line =~ /^Reply-[Tt]o/}

#sendmail = open("|"+SENDMAIL+" -f"+MLNAME+"-request@"+SERVER+" "+MLNAME+"-recipients@"+SERVER, "w")
sendmail = open("|"+SENDMAIL+" -f"+MLNAME+"-request "+ENV["USER"]+"-"+MLNAME+"-recipients@"+SERVER, "w")
#sendmail = STDOUT
mail.header.each do |line|
    next if line =~ /^X-M[lL]|X-Mail-Count|Received|Return-Path|Return-Receipt-To|Precedence/
    if line =~ /^Subject/
	line.sub!(/\[[^\]]*\]\s*/, '') if line =~ '\['+MLNAME+'.*\]'
	line.sub!(/^(Subject:\s*)/, '\1['+MLNAME+'] ')
	line.sub!(/([Rr][Ee]:\s*)([Rr][Ee]:\s*)+/, '\1')
    end
    sendmail.print line
    if line =~ /^Date/
	sendmail.print "Precedence: list\nX-Ml-Name: ", MLNAME, " (", COMMENT, ") ", "\n"
	sendmail.print "X-Ml-Server: Ruby Simple ML filter\n"
    end
    if line =~ /^To/
	sendmail.print "Reply-To: ", REPLYTO, "\n" unless rplto
	sendmail.print "Errors-To: ", ERRORSTO, "\n"
    end
end

sendmail.print "\n"
sendmail.print mail.body
sendmail.close

In This Thread