以下の内容はhttps://unageanu.hatenablog.com/entry/20090509/1241853763より取得しました。


zipファイルをメールで送付するサンプル

TMail+Net::SMTPで、zipファイルをメールで送付するサンプルです。(※添付ファイルとして送付しているわけではないのでご注意。メールの本文がzipです。)
処理としては、

  • メールのbodyとして読み込んだファイルをBase64エンコードしたものを指定。
  • content_typeなどのヘッダ情報を追加で設定。

後は普通にメールを送信すれば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にて添付ファイルをダウンロードして問題なく解凍できることは確認済みです。

参考サイト

以下のサイトの情報を参考に作成しました。ありがとうございます。




以上の内容はhttps://unageanu.hatenablog.com/entry/20090509/1241853763より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14