class Howitzer::MailAdapters::Onesecmail
This class represents 1secMail mail adapter
Public Class Methods
find(recipient, subject, wait:)
click to toggle source
Finds an email in storage @param recipient [String] an email @param subject [String] @param wait [Integer] how much time is required to wait an email @raise [EmailNotFoundError] if blank message
# File lib/howitzer/mail_adapters/onesecmail.rb, line 15 def self.find(recipient, subject, wait:) message = {} retryable(find_retry_params(wait)) { message = retrieve_message(recipient, subject) } return new(message) if message.present? raise Howitzer::EmailNotFoundError, "Message with subject '#{subject}' for recipient '#{recipient}' was not found." end
Private Class Methods
find_retry_params(wait)
click to toggle source
# File lib/howitzer/mail_adapters/onesecmail.rb, line 60 def self.find_retry_params(wait) { timeout: wait, sleep: Howitzer.mail_sleep_time, silent: true, logger: Howitzer::Log, on: Howitzer::EmailNotFoundError } end
retrieve_message(recipient, subject)
click to toggle source
# File lib/howitzer/mail_adapters/onesecmail.rb, line 71 def self.retrieve_message(recipient, subject) message = Howitzer::OnesecmailApi::Client.new.find_message(recipient, subject) raise Howitzer::EmailNotFoundError, 'Message not received yet, retry...' unless message message end
Public Instance Methods
html_body()
click to toggle source
@return [String] html body of the email message
# File lib/howitzer/mail_adapters/onesecmail.rb, line 32 def html_body message['htmlBody'] end
mail_from()
click to toggle source
@return [String] an email address specified in ‘From` field
# File lib/howitzer/mail_adapters/onesecmail.rb, line 44 def mail_from message['from'] end
plain_text_body()
click to toggle source
@return [String] plain text body of the email message
# File lib/howitzer/mail_adapters/onesecmail.rb, line 26 def plain_text_body message['body'] end
received_time()
click to toggle source
@return [String] when email was received
# File lib/howitzer/mail_adapters/onesecmail.rb, line 50 def received_time Time.parse(message['date']).to_s end
sender_email()
click to toggle source
@return [String] a real sender email address
# File lib/howitzer/mail_adapters/onesecmail.rb, line 56 def sender_email message['from'] end
text()
click to toggle source
@return [String] stripped text
# File lib/howitzer/mail_adapters/onesecmail.rb, line 38 def text message['textBody'] end