Class: Howitzer::MailAdapters::Mailgun
- Defined in:
- lib/howitzer/mail_adapters/mailgun.rb
Overview
This class represents Mailgun mail adapter
Instance Attribute Summary
Attributes inherited from Abstract
Class Method Summary collapse
-
.find(recipient, subject, wait:) ⇒ Object
Finds an email in storage.
Instance Method Summary collapse
-
#html_body ⇒ String
Html body of the email message.
-
#mail_from ⇒ String
An email address specified in ‘From` field.
-
#mime_part ⇒ Array
Attachments.
-
#mime_part! ⇒ Array
Attachments.
-
#plain_text_body ⇒ String
Plain text body of the email message.
-
#received_time ⇒ String
When email was received.
-
#recipients ⇒ String
Recipient emails separated with ‘, `.
-
#sender_email ⇒ String
A real sender email address.
-
#text ⇒ String
Stripped text.
Methods inherited from Abstract
Constructor Details
This class inherits a constructor from Howitzer::MailAdapters::Abstract
Class Method Details
.find(recipient, subject, wait:) ⇒ Object
Note:
emails are stored for 3 days only!
Finds an email in storage
16 17 18 19 20 21 22 23 |
# File 'lib/howitzer/mail_adapters/mailgun.rb', line 16 def self.find(recipient, subject, wait:) = {} retryable(find_retry_params(wait)) { = (recipient, subject) } return new() if .present? raise Howitzer::EmailNotFoundError, "Message with subject '#{subject}' for recipient '#{recipient}' was not found." end |
Instance Method Details
#html_body ⇒ String
Returns html body of the email message.
33 34 35 |
# File 'lib/howitzer/mail_adapters/mailgun.rb', line 33 def html_body ['stripped-html'] end |
#mail_from ⇒ String
Returns an email address specified in ‘From` field.
45 46 47 |
# File 'lib/howitzer/mail_adapters/mailgun.rb', line 45 def mail_from ['From'] end |
#mime_part ⇒ Array
Returns attachments.
69 70 71 |
# File 'lib/howitzer/mail_adapters/mailgun.rb', line 69 def mime_part ['attachments'] end |
#mime_part! ⇒ Array
Returns attachments.
76 77 78 79 80 81 |
# File 'lib/howitzer/mail_adapters/mailgun.rb', line 76 def mime_part! files = mime_part return files if files.present? raise Howitzer::NoAttachmentsError, 'No attachments were found.' end |
#plain_text_body ⇒ String
Returns plain text body of the email message.
27 28 29 |
# File 'lib/howitzer/mail_adapters/mailgun.rb', line 27 def plain_text_body ['body-plain'] end |
#received_time ⇒ String
Returns when email was received.
57 58 59 |
# File 'lib/howitzer/mail_adapters/mailgun.rb', line 57 def received_time ['Received'][/\w+, \d+ \w+ \d+ \d+:\d+:\d+ -\d+ \(\w+\)$/] end |
#recipients ⇒ String
Returns recipient emails separated with ‘, `.
51 52 53 |
# File 'lib/howitzer/mail_adapters/mailgun.rb', line 51 def recipients ['To'].split ', ' end |
#sender_email ⇒ String
Returns a real sender email address.
63 64 65 |
# File 'lib/howitzer/mail_adapters/mailgun.rb', line 63 def sender_email ['sender'] end |
#text ⇒ String
Returns stripped text.
39 40 41 |
# File 'lib/howitzer/mail_adapters/mailgun.rb', line 39 def text ['stripped-text'] end |