Sha256: e91181a7d227f5f7f27c6b04582a0ffbe2e5bf3a6194cf45cb2921cc445488b8
Contents?: true
Size: 1.49 KB
Versions: 3
Compression:
Stored size: 1.49 KB
Contents
module Email module Verification class Gmail < Base def retrieve_verification_code(email:, password:, mark_as_read: true, mailboxes: [], settings: {}) emails = [] result = nil begin args = settings_provided?(settings) ? {from: settings[:address]} : {} ::Gmail.connect(email, password) do |gmail| gmail.inbox.emails(args).each do |email| log("Email - from: #{email.from.first.name}, subject: #{email.subject}") if settings_provided?(settings) if email.from.first.name == settings[:from] && email.subject =~ settings[:subject] emails << (email.html_part || email.text_part || email).body.decoded email.read! if mark_as_read end else emails << (email.html_part || email.text_part || email).body.decoded email.read! if mark_as_read end end end rescue Net::IMAP::BadResponseError => e raise ArgumentError, "You need to enable logins for less secure apps in Gmail for #{email}!" end if settings_provided?(settings) message = emails.last&.to_s result = message&.match(settings[:regex])&.[](:match) else result = emails end return result end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
email-verification-0.1.2 | lib/email/verification/gmail.rb |
email-verification-0.1.1 | lib/email/verification/gmail.rb |
email-verification-0.1.0 | lib/email/verification/gmail.rb |