class Mailgun::Client
def initialize(api_key = Mailgun.api_key,
def initialize(api_key = Mailgun.api_key, api_host = Mailgun.api_host || 'api.mailgun.net', api_version = Mailgun.api_version || 'v3', ssl = true, test_mode = false, timeout = nil, proxy_url = Mailgun.proxy_url) endpoint = endpoint_generator(api_host, api_version, ssl) request_options = { url: endpoint, proxy: Mailgun.proxy_url, ssl: {verify: ssl}, headers: { 'User-Agent' => "mailgun-sdk-ruby/#{Mailgun::VERSION}", 'Accept' =>'*/*' } } request_options.merge!(request: {timeout: timeout}) if timeout @http_client = Faraday.new(request_options) do |conn| conn.request :multipart conn.request :authorization, :basic, 'api', api_key conn.request :url_encoded conn.response :raise_error, include_request: true conn.adapter Faraday.default_adapter conn.options.params_encoder = Faraday::FlatParamsEncoder end @test_mode = test_mode @api_version = api_version end