Class: Cloudflare::EmailService::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/cloudflare/email_service/configuration.rb

Overview

Holds the transport selection, credentials, and connection options used when a client is built without explicit arguments. Defaults are read from the environment.

Constant Summary collapse

DEFAULT_API_BASE =
"https://api.cloudflare.com/client/v4"
DEFAULT_SMTP_HOST =
"smtp.mx.cloudflare.net"
DEFAULT_SMTP_PORT =
465
DEFAULT_TIMEOUT =
30

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



33
34
35
36
37
38
39
40
41
42
# File 'lib/cloudflare/email_service/configuration.rb', line 33

def initialize
  @transport = ENV.fetch("CLOUDFLARE_EMAIL_TRANSPORT", "rest").to_sym
  @account_id = ENV.fetch("CLOUDFLARE_ACCOUNT_ID", nil)
  @api_token = ENV.fetch("CLOUDFLARE_API_TOKEN", nil)
  @api_base = ENV.fetch("CLOUDFLARE_API_BASE", DEFAULT_API_BASE)
  @smtp_host = ENV.fetch("CLOUDFLARE_SMTP_HOST", DEFAULT_SMTP_HOST)
  @smtp_port = Integer(ENV.fetch("CLOUDFLARE_SMTP_PORT", DEFAULT_SMTP_PORT))
  @open_timeout = DEFAULT_TIMEOUT
  @timeout = DEFAULT_TIMEOUT
end

Instance Attribute Details

#account_idString?

Returns Cloudflare account id (CLOUDFLARE_ACCOUNT_ID). Required for the REST transport; unused by SMTP.

Returns:

  • (String, nil)

    Cloudflare account id (CLOUDFLARE_ACCOUNT_ID). Required for the REST transport; unused by SMTP.



18
19
20
# File 'lib/cloudflare/email_service/configuration.rb', line 18

def 
  @account_id
end

#api_baseString

Returns base URL of the Cloudflare REST API.

Returns:

  • (String)

    base URL of the Cloudflare REST API.



23
24
25
# File 'lib/cloudflare/email_service/configuration.rb', line 23

def api_base
  @api_base
end

#api_tokenString?

Returns API token (CLOUDFLARE_API_TOKEN). REST needs the “Email Sending: Send” scope; SMTP needs “Email Sending: Edit”.

Returns:

  • (String, nil)

    API token (CLOUDFLARE_API_TOKEN). REST needs the “Email Sending: Send” scope; SMTP needs “Email Sending: Edit”.



21
22
23
# File 'lib/cloudflare/email_service/configuration.rb', line 21

def api_token
  @api_token
end

#open_timeoutInteger

Returns connection-open timeout in seconds.

Returns:

  • (Integer)

    connection-open timeout in seconds.



29
30
31
# File 'lib/cloudflare/email_service/configuration.rb', line 29

def open_timeout
  @open_timeout
end

#smtp_hostString

Returns SMTP submission host.

Returns:

  • (String)

    SMTP submission host.



25
26
27
# File 'lib/cloudflare/email_service/configuration.rb', line 25

def smtp_host
  @smtp_host
end

#smtp_portInteger

Returns SMTP submission port (465, implicit TLS).

Returns:

  • (Integer)

    SMTP submission port (465, implicit TLS).



27
28
29
# File 'lib/cloudflare/email_service/configuration.rb', line 27

def smtp_port
  @smtp_port
end

#timeoutInteger

Returns read timeout in seconds.

Returns:

  • (Integer)

    read timeout in seconds.



31
32
33
# File 'lib/cloudflare/email_service/configuration.rb', line 31

def timeout
  @timeout
end

#transportSymbol

Returns :rest (default) or :smtp.

Returns:

  • (Symbol)

    :rest (default) or :smtp.



15
16
17
# File 'lib/cloudflare/email_service/configuration.rb', line 15

def transport
  @transport
end