class Mailgunner::Client
Constants
- ATTRIBUTES
Public Class Methods
new(domain: nil, api_key: nil, api_host: nil)
click to toggle source
# File lib/mailgunner/client.rb, line 7 def initialize(domain: nil, api_key: nil, api_host: nil) @domain = domain || Mailgunner.config.domain @api_key = api_key || Mailgunner.config.api_key @api_host = api_host || Mailgunner.config.api_host @http = Net::HTTP.new(@api_host, Net::HTTP.https_default_port) @http.use_ssl = true end
Public Instance Methods
add_bounce(attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 13 def add_bounce(attributes = ATTRIBUTES) post("/v3/#{escape @domain}/bounces", attributes) end
add_complaint(attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 49 def add_complaint(attributes = ATTRIBUTES) post("/v3/#{escape @domain}/complaints", attributes) end
add_credentials(attributes)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 29 def add_credentials(attributes) post("/v3/domains/#{escape @domain}/credentials", attributes) end
add_domain(attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 13 def add_domain(attributes = ATTRIBUTES) post('/v3/domains', attributes) end
add_ip(address)
click to toggle source
# File lib/mailgunner/client/ips.rb, line 17 def add_ip(address) post("/v3/domains/#{escape @domain}/ips", ip: address) end
add_list(attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client/mailing_lists.rb, line 13 def add_list(attributes = ATTRIBUTES) post('/v3/lists', attributes) end
add_list_member(list_address, member_attributes)
click to toggle source
# File lib/mailgunner/client/mailing_lists.rb, line 33 def add_list_member(list_address, member_attributes) post("/v3/lists/#{escape list_address}/members", member_attributes) end
add_route(attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client/routes.rb, line 13 def add_route(attributes = ATTRIBUTES) post('/v3/routes', attributes) end
add_unsubscribe(attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 37 def add_unsubscribe(attributes = ATTRIBUTES) post("/v3/#{escape @domain}/unsubscribes", attributes) end
add_webhook(attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client/webhooks.rb, line 13 def add_webhook(attributes = ATTRIBUTES) post("/v3/domains/#{escape @domain}/webhooks", attributes) end
add_whitelist(attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 65 def add_whitelist(attributes = ATTRIBUTES) post("/v3/#{escape @domain}/whitelists", attributes) end
cancel_bulk_validation(list_id)
click to toggle source
# File lib/mailgunner/client/email_validation.rb, line 21 def cancel_bulk_validation(list_id) delete("/v4/address/validate/bulk/#{escape list_id}") end
create_bulk_validation(list_id)
click to toggle source
# File lib/mailgunner/client/email_validation.rb, line 13 def create_bulk_validation(list_id) post("/v4/address/validate/bulk/#{escape list_id}") end
delete_bounce(address)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 17 def delete_bounce(address) delete("/v3/#{escape @domain}/bounces/#{escape address}") end
delete_bounces()
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 21 def delete_bounces delete("/v3/#{escape @domain}/bounces") end
delete_complaint(address)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 53 def delete_complaint(address) delete("/v3/#{escape @domain}/complaints/#{escape address}") end
delete_credentials(login)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 37 def delete_credentials(login) delete("/v3/domains/#{escape @domain}/credentials/#{escape login}") end
delete_domain(name)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 17 def delete_domain(name) delete("/v3/domains/#{escape name}") end
delete_ip(address)
click to toggle source
# File lib/mailgunner/client/ips.rb, line 21 def delete_ip(address) delete("/v3/domains/#{escape @domain}/ips/#{escape address}") end
delete_list(address)
click to toggle source
# File lib/mailgunner/client/mailing_lists.rb, line 21 def delete_list(address) delete("/v3/lists/#{escape address}") end
delete_list_member(list_address, member_address)
click to toggle source
# File lib/mailgunner/client/mailing_lists.rb, line 41 def delete_list_member(list_address, member_address) delete("/v3/lists/#{escape list_address}/members/#{escape member_address}") end
delete_message(key)
click to toggle source
# File lib/mailgunner/client/messages.rb, line 25 def delete_message(key) delete("/v3/domains/#{escape @domain}/messages/#{escape key}") end
delete_route(id)
click to toggle source
# File lib/mailgunner/client/routes.rb, line 21 def delete_route(id) delete("/v3/routes/#{escape id}") end
delete_tag(id)
click to toggle source
# File lib/mailgunner/client/tags.rb, line 21 def delete_tag(id) delete("/v3/#{escape @domain}/tags/#{escape id}") end
delete_unsubscribe(address_or_id)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 33 def delete_unsubscribe(address_or_id) delete("/v3/#{escape @domain}/unsubscribes/#{escape address_or_id}") end
delete_webhook(id)
click to toggle source
# File lib/mailgunner/client/webhooks.rb, line 21 def delete_webhook(id) delete("/v3/domains/#{escape @domain}/webhooks/#{escape id}") end
delete_whitelist(address_or_domain)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 69 def delete_whitelist(address_or_domain) delete("/v3/#{escape @domain}/whitelists/#{escape address_or_domain}") end
get_all_ips(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/ips.rb, line 5 def get_all_ips(params = PARAMS) get('/v3/ips', query: params) end
get_bounce(address)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 9 def get_bounce(address) get("/v3/#{escape @domain}/bounces/#{escape address}") end
get_bounces(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 5 def get_bounces(params = PARAMS) get("/v3/#{escape @domain}/bounces", query: params) end
get_bulk_validation(list_id)
click to toggle source
# File lib/mailgunner/client/email_validation.rb, line 17 def get_bulk_validation(list_id) get("/v4/address/validate/bulk/#{escape list_id}") end
get_bulk_validations()
click to toggle source
# File lib/mailgunner/client/email_validation.rb, line 9 def get_bulk_validations get('/v4/address/validate/bulk') end
get_complaint(address)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 45 def get_complaint(address) get("/v3/#{escape @domain}/complaints/#{escape address}") end
get_complaints(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 41 def get_complaints(params = PARAMS) get("/v3/#{escape @domain}/complaints", query: params) end
get_connection_settings()
click to toggle source
# File lib/mailgunner/client/domains.rb, line 41 def get_connection_settings get("/v3/domains/#{escape @domain}/connection") end
get_credentials()
click to toggle source
# File lib/mailgunner/client/domains.rb, line 25 def get_credentials get("/v3/domains/#{escape @domain}/credentials") end
get_domain(name)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 9 def get_domain(name) get("/v3/domains/#{escape name}") end
get_domains(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 5 def get_domains(params = PARAMS) get('/v3/domains', query: params) end
get_events(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/events.rb, line 5 def get_events(params = PARAMS) get("/v3/#{escape @domain}/events", query: params) end
get_ip(address)
click to toggle source
# File lib/mailgunner/client/ips.rb, line 9 def get_ip(address) get("/v3/ips/#{escape address}") end
get_ips()
click to toggle source
# File lib/mailgunner/client/ips.rb, line 13 def get_ips get("/v3/domains/#{escape @domain}/ips") end
get_list(address)
click to toggle source
# File lib/mailgunner/client/mailing_lists.rb, line 9 def get_list(address) get("/v3/lists/#{escape address}") end
get_list_member(list_address, member_address)
click to toggle source
# File lib/mailgunner/client/mailing_lists.rb, line 29 def get_list_member(list_address, member_address) get("/v3/lists/#{escape list_address}/members/#{escape member_address}") end
get_list_members(list_address, params = PARAMS)
click to toggle source
# File lib/mailgunner/client/mailing_lists.rb, line 25 def get_list_members(list_address, params = PARAMS) get("/v3/lists/#{escape list_address}/members/pages", query: params) end
get_lists(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/mailing_lists.rb, line 5 def get_lists(params = PARAMS) get('/v3/lists/pages', query: params) end
get_message(key)
click to toggle source
# File lib/mailgunner/client/messages.rb, line 5 def get_message(key) get("/v3/domains/#{escape @domain}/messages/#{escape key}") end
get_mime_message(key)
click to toggle source
# File lib/mailgunner/client/messages.rb, line 9 def get_mime_message(key) get("/v3/domains/#{escape @domain}/messages/#{escape key}", headers: {'Accept' => 'message/rfc2822'}) end
get_route(id)
click to toggle source
# File lib/mailgunner/client/routes.rb, line 9 def get_route(id) get("/v3/routes/#{escape id}") end
get_routes(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/routes.rb, line 5 def get_routes(params = PARAMS) get('/v3/routes', query: params) end
get_tag(id)
click to toggle source
# File lib/mailgunner/client/tags.rb, line 9 def get_tag(id) get("/v3/#{escape @domain}/tags/#{escape id}") end
get_tag_stats(id, params)
click to toggle source
# File lib/mailgunner/client/tags.rb, line 17 def get_tag_stats(id, params) get("/v3/#{escape @domain}/tags/#{escape id}/stats", query: params) end
get_total_stats(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/stats.rb, line 5 def get_total_stats(params = PARAMS) get("/v3/#{escape @domain}/stats/total", query: params) end
get_tracking_settings()
click to toggle source
# File lib/mailgunner/client/domains.rb, line 49 def get_tracking_settings get("/v3/domains/#{escape @domain}/tracking") end
get_unsubscribe(address)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 29 def get_unsubscribe(address) get("/v3/#{escape @domain}/unsubscribes/#{escape address}") end
get_unsubscribes(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 25 def get_unsubscribes(params = PARAMS) get("/v3/#{escape @domain}/unsubscribes", query: params) end
get_webhook(id)
click to toggle source
# File lib/mailgunner/client/webhooks.rb, line 9 def get_webhook(id) get("/v3/domains/#{escape @domain}/webhooks/#{escape id}") end
get_webhooks()
click to toggle source
# File lib/mailgunner/client/webhooks.rb, line 5 def get_webhooks get("/v3/domains/#{escape @domain}/webhooks") end
get_whitelist(address_or_domain)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 61 def get_whitelist(address_or_domain) get("/v3/#{escape @domain}/whitelists/#{escape address_or_domain}") end
get_whitelists(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/suppressions.rb, line 57 def get_whitelists(params = PARAMS) get("/v3/#{escape @domain}/whitelists", query: params) end
send_message(attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client/messages.rb, line 13 def send_message(attributes = ATTRIBUTES) post("/v3/#{escape @domain}/messages", attributes) end
send_mime(mail)
click to toggle source
# File lib/mailgunner/client/messages.rb, line 17 def send_mime(mail) to = ['to', Array(mail.destinations).join(',')] message = ['message', mail.encoded, {filename: 'message.mime'}] multipart_post("/v3/#{escape @domain}/messages.mime", [to, message]) end
update_click_tracking_settings(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 57 def update_click_tracking_settings(params = PARAMS) put("/v3/domains/#{escape @domain}/tracking/click", params) end
update_connection_settings(attributes)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 45 def update_connection_settings(attributes) put("/v3/domains/#{escape @domain}/connection", attributes) end
update_credentials(login, attributes)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 33 def update_credentials(login, attributes) put("/v3/domains/#{escape @domain}/credentials/#{escape login}", attributes) end
update_dkim_selector(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 69 def update_dkim_selector(params = PARAMS) put("/v3/domains/#{escape @domain}/dkim_selector", params) end
update_list(address, attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client/mailing_lists.rb, line 17 def update_list(address, attributes = ATTRIBUTES) put("/v3/lists/#{escape address}", attributes) end
update_list_member(list_address, member_address, member_attributes)
click to toggle source
# File lib/mailgunner/client/mailing_lists.rb, line 37 def update_list_member(list_address, member_address, member_attributes) put("/v3/lists/#{escape list_address}/members/#{escape member_address}", member_attributes) end
update_open_tracking_settings(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 53 def update_open_tracking_settings(params = PARAMS) put("/v3/domains/#{escape @domain}/tracking/open", params) end
update_route(id, attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client/routes.rb, line 17 def update_route(id, attributes = ATTRIBUTES) put("/v3/routes/#{escape id}", attributes) end
update_tag(id, attributes)
click to toggle source
# File lib/mailgunner/client/tags.rb, line 13 def update_tag(id, attributes) put("/v3/#{escape @domain}/tags/#{escape id}", attributes) end
update_unsubscribe_tracking_settings(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 61 def update_unsubscribe_tracking_settings(params = PARAMS) put("/v3/domains/#{escape @domain}/tracking/unsubscribe", params) end
update_web_prefix(params = PARAMS)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 73 def update_web_prefix(params = PARAMS) put("/v3/domains/#{escape @domain}/web_prefix", params) end
update_webhook(id, attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client/webhooks.rb, line 17 def update_webhook(id, attributes = ATTRIBUTES) put("/v3/domains/#{escape @domain}/webhooks/#{escape id}", attributes) end
validate_address(value)
click to toggle source
# File lib/mailgunner/client/email_validation.rb, line 5 def validate_address(value) get('/v4/address/validate', query: {address: value}) end
verify_domain(name)
click to toggle source
# File lib/mailgunner/client/domains.rb, line 21 def verify_domain(name) put("/v3/domains/#{escape name}/verify") end
Private Instance Methods
delete(path)
click to toggle source
# File lib/mailgunner/client.rb, line 46 def delete(path) transmit(Net::HTTP::Delete.new(path)) end
escape(component)
click to toggle source
# File lib/mailgunner/client.rb, line 69 def escape(component) Params.escape(component) end
get(path, query: PARAMS, headers: HEADERS)
click to toggle source
# File lib/mailgunner/client.rb, line 23 def get(path, query: PARAMS, headers: HEADERS) uri = URI(path) uri.query = Params.encode(query) unless query.empty? request = Net::HTTP::Get.new(uri.to_s) headers.each { |k, v| request[k] = v } transmit(request) end
multipart_post(path, data)
click to toggle source
# File lib/mailgunner/client.rb, line 38 def multipart_post(path, data) transmit(Net::HTTP::Post.new(path)) { |message| message.set_form(data, 'multipart/form-data') } end
post(path, attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client.rb, line 34 def post(path, attributes = ATTRIBUTES) transmit(Net::HTTP::Post.new(path)) { |message| message.set_form_data(attributes) } end
put(path, attributes = ATTRIBUTES)
click to toggle source
# File lib/mailgunner/client.rb, line 42 def put(path, attributes = ATTRIBUTES) transmit(Net::HTTP::Put.new(path)) { |message| message.set_form_data(attributes) } end
transmit(message) { |message| ... }
click to toggle source
# File lib/mailgunner/client.rb, line 50 def transmit(message) message.basic_auth('api', @api_key) message['User-Agent'] = Mailgunner.config.user_agent yield message if block_given? response = @http.request(message) unless response.is_a?(Net::HTTPSuccess) raise Error.parse(response) end if response['Content-Type']&.start_with?('application/json') return JSON.parse(response.body, object_class: Struct) end response.body end