$ sudo gem install pony
I don't have any other servers, I mean real hardwares, apart from the server my web applications reside. However, I need to keep backup files of database dump or something precious safe from destructions. So I decide to send backup files to a gmail account.
pony makes easy to write a script sending mails, but it can't attach files nor use TLS transport.
Using Tmail, it's easy attaching some files to a mail. And Net::SMTP, included in ruby 1.8.7 or latter, can use TLS/SSL transport without hustle (for ruby 1.8.6 or earlier, there is the smtp_tls gem). So I forked and patched pony.
I sent a pull request to the author of pony, but for now, you can use my fork:
Web アプリケーションの DB のバックアップをとりたいけど、サーバーが1台しかないのでバックアップファイルをメールに添付して gmail のアカウントに送ることにしました。
pony を使うと簡単に送信することができます。 Pony はSMTP 経由で送信もできるんですけど、今回必要なファイル添付と gmail の SMTP サーバーが要求する TLS/SSL 通信も対応してません。
ファイル添付は TMail で簡単にできるし、TLS/SSL も ruby 1.8.7 以降の Net::SMTP なら実装され、 1.8.6 以前でも smtp_tls gem をインストールすることにより利用できるので、それらに対応できるよう Pony を fork して変更してみました。
Pull リクエストを pony の作者に送ったんですが、マージしてくれるかわからないのでこれを使って下さい。
$ gem sources -a http://gems.github.com
$ sudo gem install hiroshi-pony
Here is a sample:
メールを送るスクリプトはこんな感じ
require "rubygems"
require "pony"
Pony.mail(
:to => "example@gmail.com",
:subject => "DB backup",
:via => :smtp,
:smtp => {
:host => "smtp.gmail.com",
:port => "587",
:auth => :plain,
:user => "example",
:password => "********",
:tls => true
},
:attachments => {"database_name.sql.gz" => `pg_dump database_name | gzip`}
)
1 comment:
Thank you !!!
Post a Comment