ubuntuシステムからメールを送りたい。
メールを送ろうとすると、SMTPをつかって、MIMEでエンコードして SMTP over TLSで接続してとあれこれ手順が必要。
その手順をrubygemでインストールして使い方を調べるのも面倒。
ローカルの postfix にリレーさせる。
ubuntu とかサーバーで使ってるとローカルホストに exim4 や postfix くらいは用意していると思うんですよ。するとsendmail コマンドが使えるじゃないですか。
sendmail でメール送信する例。
$ sendmail takuya@example.com Subject: Hi Hi hello from test .
ruby のプロセス open は標準入力を渡すのがとても楽。
ruby はIO周りと列挙周りだけは、本当にガチで便利ですよね。
シンプルなExim4と、シンプルなsendmail、そしてシンプルな ruby open。単純なものを組み合わせてしまう。
#!/usr/bin/env ruby # open("|sendmail -i -t > /dev/null",'w'){|f| f.puts 'To:takuya@example.com' f.puts 'Subject: Hello from ruby ' f.puts ' ' f.puts ' ' f.puts 'this is sample from ruby stdin' f.puts ' ' f.puts '' }
gem 何も要らない
gem のインストールの管理が面倒だったり、 bundler といえども、どこにgemを導入しているか GEM_HOMEのLOAD_PATHであれこれ考える必要もない。gem を外すと楽だった。
単純なことは単純にやるのが一番ですよね。
KISS / Keep it simple stupid が大事ですよ。ほんと。凝りだすときりがない。