Class: MultiMail::Message::Mailgun
- Inherits:
-
Base
- Object
- Mail::Message
- Base
- MultiMail::Message::Mailgun
- Defined in:
- lib/multi_mail/mailgun/message.rb
Overview
Instance Method Summary collapse
-
#mailgun_attachments ⇒ Multimap
Returns the message's attachments in Mailgun format.
-
#mailgun_headers ⇒ Multimap
Returns the message headers in Mailgun format.
-
#to_mailgun_hash ⇒ Hash
Returns the message as parameters to POST to Mailgun.
Instance Method Details
#mailgun_attachments ⇒ Multimap
Returns the message's attachments in Mailgun format.
23 24 25 26 27 28 29 30 |
# File 'lib/multi_mail/mailgun/message.rb', line 23 def hash = Multimap.new .each do || key = .content_type.start_with?('image/') ? 'inline' : 'attachment' hash[key] = Faraday::UploadIO.new(StringIO.new(.body.decoded), .content_type, .filename) end hash end |
#mailgun_headers ⇒ Multimap
Returns the message headers in Mailgun format.
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/multi_mail/mailgun/message.rb', line 8 def mailgun_headers hash = Multimap.new header_fields.each do |field| key = field.name.downcase unless %w(from to cc bcc subject tag).include?(key) hash["h:#{field.name}"] = field.value end end hash end |
#to_mailgun_hash ⇒ Hash
Returns the message as parameters to POST to Mailgun.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/multi_mail/mailgun/message.rb', line 36 def to_mailgun_hash hash = Multimap.new %w(from subject).each do |field| if self[field] hash[field] = self[field].value end end %w(to cc bcc).each do |field| if self[field] if self[field].value.respond_to?(:each) self[field].value.each do |value| hash[field] = value end else hash[field] = self[field].value end end end if body_text && !body_text.empty? hash['text'] = body_text end if body_html && !body_html.empty? hash['html'] = body_html end .each do |tag| hash['o:tag'] = tag end normalize(hash.merge().merge(mailgun_headers).to_hash) end |