Jなんとかメールを送信するRubyスクリプト
使い方
client = JxxxClient.new( "<接続先ホスト>", "<ユーザー名>", "<パスワード>" ) client.send_mail("<送信先>", "<タイトル>", "<本文>")
これで、リリース連絡とか動作確認回覧を自動送信するわけですよ。
依存モジュール
例によってhttpclientを利用しています。以下のコマンドを実行してインストールしてください。
gem install httpclient --source http://dev.ctor.org/download/
実装
- Webアプリの方に接続して送信します。
- 送信先ユーザーは","区切りで複数指定できる(はず)
- 異常系処理は適当です。(認証エラーは試したけど、他は未確認。あんまり試すと怒られそうだし。)
- カイランとかシンテンとかはもうちょっと調査が必要。
require 'httpclient' require 'uri' require 'kconv' class JxxxClient def initialize( host, user, pass, proxy=nil ) @client = HTTPClient.new( proxy, "Client") @client.set_cookie_store("cookie.dat") @client.set_auth( "http://" + host + "/", user, pass ) @host = host @user = user end def send_mail( to, title, content ) url = "http://#{@host}/~xjswamail/#{@user}/SendMail/Easy/jossend.jsk" body = "TO=" << URI.encode(to.tosjis) body += "&CC=" body += "&SUBJECT=" << URI.encode(title.tosjis) body += "&CONTENT=" << URI.encode(content.tosjis) body += "&MAILTYPE=NORMAL" body += "&COMMAND=Send" body += "&HIDDENBCC=" body += "&MAILID=0" body += "&FROMCONT=0" body += "&SELECT=&NAMEFLAG=0&BODYLIST=&ENCLOSELIST=&TempType=e&ERRMSG=&HIDDENSIG=&" body += "SIGINITNEED=&SENNI_ID=0&SELECTEDSIG=" result = @client.post( url, body ) if result.content =~ /\<BODY BGCOLOR\=\"\#ffffff\"\>\<H3\>(.*?)\<\/H3\>/ raise $1 end end end