Class: DocomoWebMailer::Builder
- Inherits:
-
Object
- Object
- DocomoWebMailer::Builder
- Defined in:
- lib/docomo_web_mailer.rb
Overview
SMTPサーバに送信するためのメールテキストを作成する。 他のメールソフト・メールライブラリで扱うための中間形式としても。
Instance Method Summary collapse
-
#build(uid) ⇒ Object
uid からメールテキストを作成する 引数 uid には to_uid が適用される。.
-
#build_from(headers, parts) ⇒ Object
header と parts からメールテキストを作成する.
-
#initialize(mailer) ⇒ Builder
constructor
A new instance of Builder.
-
#make_mail_to_smtp_multipart(headers, parts) ⇒ Object
AllMailHeaders と Mailparts からメールのSMTP送信用テキストを作る(マルチパート).
-
#make_mail_to_smtp_singlepart(headers, part) ⇒ Object
AllMailHeaders と Mimepart からメールのSMTP送信用テキストを作る(シングル).
-
#part_to_mail(part) ⇒ Object
Mimepart をsmtp bodyに.
Constructor Details
#initialize(mailer) ⇒ Builder
Returns a new instance of Builder.
130 131 132 |
# File 'lib/docomo_web_mailer.rb', line 130 def initialize(mailer) @mailer = mailer end |
Instance Method Details
#build(uid) ⇒ Object
uid からメールテキストを作成する 引数 uid には to_uid が適用される。
135 136 137 |
# File 'lib/docomo_web_mailer.rb', line 135 def build(uid) build_from @mailer.mail_get_headers(uid), @mailer.mail_get_parts(uid) end |
#build_from(headers, parts) ⇒ Object
header と parts からメールテキストを作成する
139 140 141 |
# File 'lib/docomo_web_mailer.rb', line 139 def build_from(headers,parts) headers.multipart? ? make_mail_to_smtp_multipart( headers, parts ) : make_mail_to_smtp_singlepart( headers, parts.parts[0] ) end |
#make_mail_to_smtp_multipart(headers, parts) ⇒ Object
AllMailHeaders と Mailparts からメールのSMTP送信用テキストを作る(マルチパート)
148 149 150 151 152 153 154 155 156 |
# File 'lib/docomo_web_mailer.rb', line 148 def make_mail_to_smtp_multipart(headers,parts) raise "unknown type header #{text}" unless headers.content_type =~ /boundary=(.*)$/ boundary = $1.dup.strip.gsub(/^"(.*)"$/,'\1').gsub(/^'(.*)'$/,'\1') headers.to_s + "\n\n--#{boundary}\n" + parts.parts.map{|part| part_to_mail(part).join("\n")}.join("\n--#{boundary}\n") + "\n--#{boundary}--\n" end |
#make_mail_to_smtp_singlepart(headers, part) ⇒ Object
AllMailHeaders と Mimepart からメールのSMTP送信用テキストを作る(シングル)
144 145 146 |
# File 'lib/docomo_web_mailer.rb', line 144 def make_mail_to_smtp_singlepart(headers,part) headers.to_s + "\n\n" + @mailer.( part ) end |
#part_to_mail(part) ⇒ Object
Mimepart をsmtp bodyに
158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/docomo_web_mailer.rb', line 158 def part_to_mail(part) body = @mailer.( part ) content_type = part.content_type is_text = content_type =~ /^text\// mail = [] mail << "Content-Type: #{content_type}" mail << "Content-Transfer-Encoding: #{is_text ? '8bit' : 'base64' }" mail << "Content-ID: #{part.contentid}" if part.contentid mail << "Content-Disposition: #{part.disposition_with_filename}" if part.disposition mail << "" mail << ( is_text ? body : Base64.encode64(body) ) mail end |