class SendCloud::Mail

Public Class Methods

auth(mail_api_user, mail_api_key) click to toggle source
# File lib/sendcloud-mail.rb, line 14
def self.auth(mail_api_user, mail_api_key)
  @mail_api_user = mail_api_user
  @mail_api_key = mail_api_key
end
create(invokeName, name, html, subject, templateType) click to toggle source
# File lib/sendcloud-mail.rb, line 78
def self.create(invokeName, name, html, subject, templateType)
  response = RestClient.post 'http://api.sendcloud.net/apiv2/template/add?',
                              apiUser: @mail_api_user,
                              apiKey: @mail_api_key,
                              invokeName: invokeName,
                              name: name,
                              html: html,
                              subject: subject,
                              templateType: templateType

  JSON.parse(response.to_s)
end
delete(invokeName) click to toggle source
# File lib/sendcloud-mail.rb, line 103
def self.delete(invokeName)
  response = RestClient.post 'https://api.sendcloud.net/apiv2/template/delete?',
                              apiUser: @mail_api_user,
                              apiKey: @mail_api_key,
                              invokeName: invokeName
  JSON.parse(response.to_s)['statusCode']
end
get(invokeName) click to toggle source
# File lib/sendcloud-mail.rb, line 59
def self.get(invokeName)
  params = {
    apiUser: @mail_api_user,
    apiKey: @mail_api_key,
    invokeName: invokeName,
  }
  response = RestClient.get 'https://api.sendcloud.net/apiv2/template/get?', params: params
  JSON.parse(response.to_s)
end
list() click to toggle source
# File lib/sendcloud-mail.rb, line 69
def self.list
  params = {
    apiUser: @mail_api_user,
    apiKey: @mail_api_key
  }
  response = RestClient.get 'https://api.sendcloud.net/apiv2/template/list?', params: params
  JSON.parse(response.to_s)
end
load!(file, environment) click to toggle source
# File lib/sendcloud-mail.rb, line 9
def self.load!(file, environment)
  config = YAML.load_file(file)
  self.auth(config[environment.to_s]['mail_api_user'], config[environment.to_s]['mail_api_key'])
end
send(from, fromName, subject, xsmtpapi, content, summary=nil) click to toggle source
# File lib/sendcloud-mail.rb, line 19
def self.send(from, fromName, subject, xsmtpapi, content, summary=nil)
  # xsmtpapi comes in the following format:
  #{
  #  "to": ["d@163.com",'i@163.com'],
  #  "sub": {
  #      "%content%": ['nihao0', 'nihao1']
  #  }
  #}
  response = RestClient.post 'https://api.sendcloud.net/apiv2/mail/send?',
                             apiUser: @mail_api_user,
                             apiKey: @mail_api_key,
                             from: from,
                             fromName: fromName,
                             xsmtpapi: xsmtpapi.to_json,
                             subject: subject,
                             html: content,
                             contentSummary: summary
  JSON.parse(response.to_s)['statusCode']
end
send_template(invokeName, from, fromName, xsmtpapi, subject=nil, summary=nil) click to toggle source
# File lib/sendcloud-mail.rb, line 39
def self.send_template(invokeName, from, fromName, xsmtpapi, subject=nil, summary=nil)
  # xsmtpapi comes in the following format:
  #{
  #  "to": ["d@163.com",'i@163.com'],
  #  "sub": {
  #      "%content%": ['nihao0', 'nihao1']
  #  }
  #}
  response = RestClient.post 'https://api.sendcloud.net/apiv2/mail/sendtemplate?',
                             apiUser: @mail_api_user,
                             apiKey: @mail_api_key,
                             from: from,
                             fromName: fromName,
                             xsmtpapi: xsmtpapi.to_json,
                             subject: subject,
                             templateInvokeName: invokeName,
                             contentSummary: summary
  JSON.parse(response.to_s)['statusCode']
end
update(invokeName, name, html, subject, templateType) click to toggle source
# File lib/sendcloud-mail.rb, line 91
def self.update(invokeName, name, html, subject, templateType)
  response = RestClient.post 'https://api.sendcloud.net/apiv2/template/update?',
                              apiUser: @mail_api_user,
                              apiKey: @mail_api_key,
                              invokeName: invokeName,
                              name: name,
                              html: html,
                              subject: subject,
                              templateType: templateType
  JSON.parse(response.to_s)['statusCode']
end