- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!rubyでsendmail
Rubyスクリプトでメールを送信する方法といえば,
Net::SMTPを使う方法が,よく検索なんかでもひっかかるけど,
sendmailを使いたい事もある.
まあ,sendmail使うっていうのは,
普通にUnixのコマンドを実行することなんだけど,
Rubyだと,パイプ使って,IO::popen
IO.popen("/usr/sbin/sendmail -t -f 'FROM@FOO.BAR'", "w"){ |smtp|
smtp.print(mail_header)
smtp.print("\n")
smtp.print(mail_message.tojis)
smtp.print("\n\n")
smtp.print(".")
smtp.print("\n")
}
ブロックにしとくと,自動的にcloseしてくれるみたいで便利.
メールの中身は,
subject = ["テスト".tojis].pack('m').chomp;
mail_header = ""
mail_header += "From: " + "FROM@FOO.BAR" + "\n";
mail_header += "To: " + "TO@FOO.BAR" + "\n";
mail_header += "Subject: " + "=?ISO-2022-JP?B?#{subject}?=" + "\n";
mail_header += "MIME-VERSION: 1.0" + "\n"
mail_header += "Content-Type: text/plain;" + "\n"
mail_header += "Content-Transfer-Encoding: 7bit" + "\n"
date = Time.now
mail_header += "Date: " + date.strftime("%a, %d %b %Y %X %Z") + "\n"
mail_header += "Message-Id: " + "MESSAGE_ID" + "\n"
mail_message = "";
mail_message += "本文" + "\n";
って感じ