zipファイルをメールで送付するサンプル
TMail+Net::SMTPで、zipファイルをメールで送付するサンプルです。(※添付ファイルとして送付しているわけではないのでご注意。メールの本文がzipです。)
処理としては、
後は普通にメールを送信すればOK。
require 'rubygems' require 'tmail' require "tlsmail" require "base64" # tmailでメールを作成 mail = TMail::Mail.new mail.to = 'foo@var.com' mail.from = 'foo@gmail.com' mail.subject = 'test mail2' mail.date = Time.now mail.mime_version = '1.0' # 本文をbase64でエンコードしたzipにする。 mail.body = Base64.encode64 IO.read( "./test.zip" ) mail.set_content_type 'application','zip','name'=>"test.zip" mail.set_content_disposition 'attachment','filename'=>"test.zip" mail.transfer_encoding = 'base64' #puts mail.to_s Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE) Net::SMTP.start( "smtp.gmail.com", 587, "localhost.localdomain", "foo@gmail.com", "<パスワード>", "plain"){ |smtp| smtp.sendmail(mail.encoded, mail.from, mail.to) }
GMailにて添付ファイルをダウンロードして問題なく解凍できることは確認済みです。
参考サイト
以下のサイトの情報を参考に作成しました。ありがとうございます。