class MultiMail::Message::Postmark
@see developer.postmarkapp.com/developer-build.html#message-format
Attributes
mailboxhash[RW]
messageid[RW]
tag[RW]
Public Instance Methods
postmark_attachments()
click to toggle source
Returns the message's attachments in Postmark
format.
@return [Array<Hash>] the attachments in Postmark
format @see developer.postmarkapp.com/developer-build.html#attachments
# File lib/multi_mail/postmark/message.rb, line 27 def postmark_attachments attachments.map do |attachment| hash = { 'ContentType' => attachment.content_type, 'Name' => attachment.filename, 'Content' => Base64.encode64(attachment.body.decoded) } if attachment.content_type.start_with?('image/') hash['ContentID'] = attachment.filename end hash end end
postmark_headers()
click to toggle source
Returns the message headers in Postmark
format.
@return [Array<Hash>] the message headers in Postmark
format
# File lib/multi_mail/postmark/message.rb, line 10 def postmark_headers array = [] header_fields.each do |field| key = field.name.downcase # @see https://github.com/wildbit/postmark-gem/blob/master/lib/postmark/message_extensions/mail.rb#L74 # @see https://github.com/wildbit/postmark-gem/pull/36#issuecomment-22298955 unless %w(from to cc bcc reply-to subject tag content-type date).include?(key) || (Array === field.value && field.value.size > 1) array << {'Name' => field.name, 'Value' => field.value} end end array end
to_postmark_hash()
click to toggle source
Returns the message as parameters to POST to Postmark
.
@return [Hash] the message as parameters to POST to Postmark
# File lib/multi_mail/postmark/message.rb, line 44 def to_postmark_hash hash = {} %w(from subject).each do |field| if self[field] hash[postmark_key(field)] = self[field].value end end %w(to cc bcc reply_to).each do |field| if self[field] value = self[field].value hash[postmark_key(field)] = value.respond_to?(:join) ? value.join(', ') : value end end hash['TextBody'] = body_text hash['HtmlBody'] = body_html hash['Headers'] = postmark_headers hash['Attachments'] = postmark_attachments hash['Tag'] = tags.first normalize(hash) end
Private Instance Methods
postmark_key(string)
click to toggle source
# File lib/multi_mail/postmark/message.rb, line 71 def postmark_key(string) string.downcase.split(/[_-]/).map(&:capitalize).join end