Class: Readiness::Mailgun::Emails

Inherits:
Client
  • Object
show all
Defined in:
lib/support_readiness/mailgun/emails.rb

Overview

Defines the class Emails within the module Readiness::Mailgun.

Author:

  • Jason Colyer

Since:

  • 1.0.12

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Client

auth_error, bad_request_error, convert_actions, convert_conditions, convert_standard_names_to_ids, convert_ticket_form_agent_conditions, convert_ticket_form_brands, convert_ticket_form_end_user_conditions, convert_ticket_form_names_to_ids, convert_view_names_to_ids, convert_view_restrictions, covert_ticket_form_field_ids, create_package!, erb_renderer, handle_request_error, not_found_error, not_processible_error, put_into_archive, recursively_deflate_directory, timestamp_filename, to_clean_json, to_clean_json_with_key, to_hash, to_nearly_clean_json, to_nearly_clean_json_with_key, to_param_string, write_entries

Constructor Details

#initialize(object = {}) ⇒ Emails

Creates a new Readiness::Mailgun::Emails instance

Examples:

require 'support_readiness'
Readiness::Mailgun::Emails.new

Parameters:

Author:

  • Jason Colyer

Since:

  • 1.0.12



24
25
26
27
28
29
30
31
32
33
# File 'lib/support_readiness/mailgun/emails.rb', line 24

def initialize(object = {})
  @bcc = object['bcc']
  @cc = object['cc']
  @from = object['from']
  @html = object['html']
  @subject = object['subject']
  @reply_to = object['reply_to']
  @text = object['text']
  @to = object['to']
end

Instance Attribute Details

#bccObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/mailgun/emails.rb', line 13

def bcc
  @bcc
end

#ccObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/mailgun/emails.rb', line 13

def cc
  @cc
end

#fromObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/mailgun/emails.rb', line 13

def from
  @from
end

#htmlObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/mailgun/emails.rb', line 13

def html
  @html
end

#reply_toObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/mailgun/emails.rb', line 13

def reply_to
  @reply_to
end

#subjectObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/mailgun/emails.rb', line 13

def subject
  @subject
end

#textObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/mailgun/emails.rb', line 13

def text
  @text
end

#toObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/mailgun/emails.rb', line 13

def to
  @to
end

Class Method Details

.send!(client, email) ⇒ Boolean

Sends an email using Mailgun. This will exit on error or if the email values used are invalid

Examples:

require 'support_readiness'
config = Readiness::Mailgun::Configuration.new
config.domain = 'test.gitlab.com'
config.token = 'abc123'
client = Readiness::Mailgun::Client.new(config)
email = Readiness::Mailgun::Emails.new
email.from = 'techsupport@gitlab.com'
email.to = 'jcolyer@gitlab.com'
email.subject = 'Test from Jason'
email.html = '<p>This is a test</p>'
email.text = 'This is a test'
pp Readiness::Mailgun::Emails.send!(client, email)
# => true

Parameters:

Returns:

  • (Boolean)

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.12



58
59
60
61
62
63
# File 'lib/support_readiness/mailgun/emails.rb', line 58

def self.send!(client, email)
  handle_request_error(1, 'Mailgun', 400, { action: 'Send email', id: email }) unless valid_email?(email)
  response = client.connection.post "#{client.domain}/messages", to_hash(email).compact
  handle_request_error(1, 'Mailgun', response.status, { action: 'Send email', id: email }) unless response.status == 200
  true
end

.valid_email?(email) ⇒ Boolean

Determines if all required values are present for an email to be sent.

Examples:

require 'support_readiness'
email = Readiness::Mailgun::Emails.new
email.from = 'techsupport@gitlab.com'
email.to = 'jcolyer@gitlab.com'
email.subject = 'Test from Jason'
email.html = '<p>This is a test</p>'
email.text = 'This is a test'
pp Readiness::Mailgun::Emails.valid_email?(email)
# => true
email.subject = nil
pp Readiness::Mailgun::Emails.valid_email?(email)
# => false

Parameters:

Returns:

  • (Boolean)

Author:

  • Jason Colyer

Since:

  • 1.0.12



85
86
87
88
89
90
91
92
# File 'lib/support_readiness/mailgun/emails.rb', line 85

def self.valid_email?(email)
  return false if email.from.nil?
  return false if email.to.nil?
  return false if email.subject.nil?
  return false if email.html.nil? && email.text.nil?

  true
end