class Mailjet::API def properly_configured? Mailjet.respond_to?(:config) && [Mailjet.config.api_key, Mailjet.config.secret_key].all?(&:present?) end # Get messages sent to a user through SendInBlue. # # Returns an array of SentMail objects. def sent_mails(email_address) contact = Mailjet::Contact.find(email_address) if contact.nil? Rails.logger.info "Mailjet::API: no contact found for email address '#{email_address}'" return [] end messages = Mailjet::Message.all( contact: contact.attributes['id'], from_ts: 30.days.ago.to_datetime.rfc3339, show_subject: true ) messages.map do |message| SentMail.new( from: nil, to: email_address, subject: message.attributes['subject'], delivered_at: message.attributes['arrived_at'], status: message.attributes['status'], service_name: 'Mailjet', external_url: 'https://app.mailjet.com/contacts/subscribers/contact_list' ) end rescue Mailjet::ApiError => e Rails.logger.error e.message [] end end