3.2.2. Authentication Service

3.2.2.1. Environment Variables

設定ファイル内の設定値は環境変数で上書きできます。

例えば、設定ファイルが次のようになっている場合、

[section]
  attributes-1 = "value"

以下のような環境変数で設定を上書きできます。

AUTH_SECTION_ATTRIBUTES_1="overwrite"

設定値が文字列の配列である場合は、カンマ区切りでの指定が可能です。

例えば、設定ファイルが次のようになっている場合、

[section]
  array-attributes = ['val1', 'val2']

環境変数に以下のような値を与えることで設定を上書きできます。

AUTH_SECTION_ARRAY_ATTRIBUTES="overwrite1,overwrite2

テーブルの配列([[section-name]]のように二重角括弧で記述)の中の項目は、環境変数による上書きはできません。

3.2.2.2. Reference

すべての設定項目と、デフォルト値を示します。

3.2.2.2.1. api

Property

Description

Default

bind-address

指定したホストとポートでAPIサーバーをリスンします。

127.0.0.1:8080

[api]
  # 指定したホストとポートでAPIサーバーをリスンします。
  bind-address = '127.0.0.1:8080'

3.2.2.2.2. forward-auth

Property

Description

Default

enable-origin-validator

Origin検証を有効にします。この設定は内部APIの /auth/token/verify で使用されます。このエンドポイントは基本的にintdash APIすべてのエンドポイント呼び出し時の共通処理としてコールされます。もし false にした場合Originの検証は行われません。true にした場合は Origin ヘッダーが trusted-origins に設定された文字列と完全一致したときのみリクエストが許可されます。

false

trusted-origins

信頼されたOriginを指定します。enable-origin-validator が trueのときのみ有効な設定です。

['https://localhost:8080']

authentication-service-v1-base-url

intdash API v1系のサービスベースURLを指定します。この設定は内部APIの /auth/token/verify で使用されます。intdash API v1系の認証用トークンとの互換性を維持したい場合に指定します。既存のv1環境からv2環境へアップグレードした場合に利用することが想定されています。http://auth-v1:8080 のような形式で指定します。

[forward-auth]
  # Origin検証を有効にします。この設定は内部APIの `/auth/token/verify` で使用されます。
  # このエンドポイントは基本的にintdash APIすべてのエンドポイント呼び出し時の共通処理としてコールされます。
  # もし `false` にした場合Originの検証は行われません。
  # `true` にした場合は `Origin` ヘッダーが `trusted-origins` に設定された文字列と完全一致したときのみリクエストが許可されます。
  enable-origin-validator = false
  # 信頼されたOriginを指定します。`enable-origin-validator` が trueのときのみ有効な設定です。
  trusted-origins = ['https://localhost:8080']
  # intdash API v1系のサービスベースURLを指定します。この設定は内部APIの `/auth/token/verify` で使用されます。
  # intdash API v1系の認証用トークンとの互換性を維持したい場合に指定します。
  # 既存のv1環境からv2環境へアップグレードした場合に利用することが想定されています。
  # `http://auth-v1:8080` のような形式で指定します。
  authentication-service-v1-base-url = ''

3.2.2.2.3. postgres

Property

Description

Default

dbname

DB名です。

auth

username

DBユーザー名です。

auth

password

DBパスワードです。

auth

address

DBアドレスです。

127.0.0.1:5432

max-idle-conns

コネクションプールの最大アイドルコネクション数です。

10

max-open-conns

コネクションプールの最大オープンコネクション数です。

10

max-conn-idle-time

コネクションの最大アイドル時間です。この時間を超えると切断されます。0sは無制限です。

0s

max-conn-lifetime

コネクションの最大接続時間です。この時間を超えると切断されます。0sはデフォルト値が使用されます。

10m0s

[postgres]
  # DB名です。
  dbname = 'auth'
  # DBユーザー名です。
  username = 'auth'
  # DBパスワードです。
  password = 'auth'
  # DBアドレスです。
  address = '127.0.0.1:5432'
  # コネクションプールの最大アイドルコネクション数です。
  max-idle-conns = 10
  # コネクションプールの最大オープンコネクション数です。
  max-open-conns = 10
  # コネクションの最大アイドル時間です。この時間を超えると切断されます。0sは無制限です。
  max-conn-idle-time = '0s'
  # コネクションの最大接続時間です。この時間を超えると切断されます。0sはデフォルト値が使用されます。
  max-conn-lifetime = '10m0s'

3.2.2.2.4. logger

Property

Description

Default

level

ログレベルです。debugwarninfowarnerror から指定します。

info

encoding

ログの出力フォーマットです。 jsonconsole から指定します。

json

[logger]
  # ログレベルです。`debug`、`warn`、`info`、`warn`、`error` から指定します。
  level = 'info'
  # ログの出力フォーマットです。 `json`、`console` から指定します。
  encoding = 'json'

3.2.2.2.5. nats-streaming

Property

Description

Default

url

nats-streamingのURLを指定します

nats://127.0.0.1:4222

username

ユーザー名です。

intdash

password

パスワードです。

aptpod1234

cluster-id

クラスタIDです。

intdash

[nats-streaming]
  # nats-streamingのURLを指定します
  url = 'nats://127.0.0.1:4222'
  # ユーザー名です。
  username = 'intdash'
  # パスワードです。
  password = 'aptpod1234'
  # クラスタIDです。
  cluster-id = 'intdash'

3.2.2.2.6. jet-stream

Property

Description

Default

url

jet-streamのURLを指定します。

nats://nats:4222

username

ユーザー名です。

intdash

password

パスワードです。

aptpod1234

max-delivery-count

サブスクライバーの最大配信数です。

3

max-pings-outstanding

Pingの最大未処理数です。

3

ping-interval

Pingの間隔です。

5s

max-reconnects

再接続回数です。

1800

reconnect-wait

再接続間隔です。

2s

[jet-stream]
  # jet-streamのURLを指定します。
  url = 'nats://nats:4222'
  # ユーザー名です。
  username = 'intdash'
  # パスワードです。
  password = 'aptpod1234'
  # サブスクライバーの最大配信数です。
  max-delivery-count = 3
  # Pingの最大未処理数です。
  max-pings-outstanding = 3
  # Pingの間隔です。
  ping-interval = '5s'
  # 再接続回数です。
  max-reconnects = 1800
  # 再接続間隔です。
  reconnect-wait = '2s'

3.2.2.2.7. oauth2

Property

Description

Default

issuer-base

IssuerのベースURLを指定します。Issuerは <scheme>://<host>:<port>/api/auth/ となります。

http://localhost:8080

access-token-expiration-period

アクセストークンの有効期限です。Go言語のtime.Durationの文字列表現で指定します。

1h

refresh-token-expiration-days

リフレッシュトークンの有効期限(日)です。

30

temporary-token-expiration-period

一時トークンの有効期限です。Go言語のtime.Durationの文字列表現で指定します。

5m

revocation-margin-period

トークン無効化が要求されてから実際に無効化されるまでの時間です。Go言語のtime.Durationの文字列表現で指定します。

5s

cleaning-session-interval-period

不要なセッションを削除する時間間隔です。ここで指定した間隔で、すでに有効期限が切れたOAuth2のセッションを削除します。Go言語のtime.Durationの文字列表現で指定します。

5h

sign-in-page-url

認可エンドポイントへのアクセス時にリダイレクト先となるサインイン用のページです。

http://localhost:8080/signin

change-password-page-url

一時パスワードによるログイン後にリダイレクト先となる、パスワード変更ページのURLです。

http://localhost:8080/change-password

web-client-redirect-base-urls

デフォルトで登録されるOAuth2クライアントのうち、ウェブのリダイレクトURLで使用するベースURLです。

['http://localhost:8080']

enforce-pkce

PKCEを強制します。

false

root-ca-cert-files

クライアント認証で使用するルート証明書のファイルパスです。デフォルトはシステムのルート証明書を使用します。

[]

[oauth2]
  # IssuerのベースURLを指定します。
  # Issuerは `<scheme>://<host>:<port>/api/auth/` となります。
  issuer-base = 'http://localhost:8080'
  # アクセストークンの有効期限です。Go言語のtime.Durationの文字列表現で指定します。
  access-token-expiration-period = '1h'
  # リフレッシュトークンの有効期限(日)です。
  refresh-token-expiration-days = 30
  # 一時トークンの有効期限です。Go言語のtime.Durationの文字列表現で指定します。
  temporary-token-expiration-period = '5m'
  # トークン無効化が要求されてから実際に無効化されるまでの時間です。Go言語のtime.Durationの文字列表現で指定します。
  revocation-margin-period = '5s'
  # 不要なセッションを削除する時間間隔です。ここで指定した間隔で、すでに有効期限が切れたOAuth2のセッションを削除します。
  # Go言語のtime.Durationの文字列表現で指定します。
  cleaning-session-interval-period = '5h'
  # 認可エンドポイントへのアクセス時にリダイレクト先となるサインイン用のページです。
  sign-in-page-url = 'http://localhost:8080/signin'
  # 一時パスワードによるログイン後にリダイレクト先となる、パスワード変更ページのURLです。
  change-password-page-url = 'http://localhost:8080/change-password'
  # デフォルトで登録されるOAuth2クライアントのうち、ウェブのリダイレクトURLで使用するベースURLです。
  web-client-redirect-base-urls = ['http://localhost:8080']
  # PKCEを強制します。
  enforce-pkce = false
  # クライアント認証で使用するルート証明書のファイルパスです。デフォルトはシステムのルート証明書を使用します。
  root-ca-cert-files = []

3.2.2.2.8. keys

Property

Description

Default

oauth2-rsa.private-key.driver

秘密鍵を指定する方法(static または file)を指定します。static の場合は、以下の key に秘密鍵の文字列を直接入力してください。file の場合は、以下の path に秘密鍵のファイルへのパスを入力してください。

static

oauth2-rsa.private-key.static.key

RSA秘密鍵の文字列です。空文字の場合はメモリ内で自動生成します。メモリ内で生成された秘密鍵はアプリケーションが再起動されると揮発するため注意してください。

oauth2-rsa.private-key.file.path

RSA秘密鍵のファイルです。

oauth2-rsa.public-keys.driver

公開鍵を指定する方法(static または file)を指定します。static の場合は、以下の key に公開鍵の文字列を直接入力してください。file の場合は、以下の path に公開鍵のファイルへのパスを入力してください。

static

oauth2-rsa.public-keys.static.key

RSA公開鍵の文字列です。

oauth2-rsa.public-keys.file.path

RSA公開鍵のファイルです。

oauth2-hmac.hash-secret

OAuth2のHMAC署名で使用されるシークレットです。リフレッシュトークンの署名に使用されます。ここで指定されたシークレットは検証にも使用されます。

oauth2-hmac.rotated-hash-secrets

OAuth2のHMAC検証で使用されるシークレットです。リフレッシュトークンの検証に使用されます。

[]

api-token.hash-secret

APIトークン発行に使用されるシークレットです。ここで指定されたシークレットは検証にも使用されます。

api-token.rotated-hash-secrets

APIトークン検証に使用されるシークレットです。

[]

password-recovery.hash-secret

パスワード再発行トークンに使用されるシークレットです。ここで指定されたシークレットは検証にも使用されます。

password-recovery.rotated-hash-secrets

パスワード再発行トークン検証に使用されるシークレットです。

[]

email-verification.hash-secret

Emailアドレス有効化トークンに使用されるシークレットです。ここで指定したシークレットは検証にも使用されます。

email-verification.rotated-hash-secrets

Emailアドレス有効化トークン検証に使用されるシークレットです。

[]

[keys]
  [keys.oauth2-rsa]
    # OAuth2のトークン署名に使用するRSA秘密鍵です。
    # 署名に使用した秘密鍵はペアとなる公開鍵で検証にも使用されます。
    [keys.oauth2-rsa.private-key]
      # 秘密鍵を指定する方法(`static` または `file`)を指定します。
      # `static` の場合は、以下の `key` に秘密鍵の文字列を直接入力してください。
      # `file` の場合は、以下の `path` に秘密鍵のファイルへのパスを入力してください。
      driver = 'static'

      [keys.oauth2-rsa.private-key.static]
        # RSA秘密鍵の文字列です。空文字の場合はメモリ内で自動生成します。
        # メモリ内で生成された秘密鍵はアプリケーションが再起動されると揮発するため注意してください。
        key = ''

      [keys.oauth2-rsa.private-key.file]
        # RSA秘密鍵のファイルです。
        path = ''

# OAuth2トークンの検証に使用する公開鍵です。
# 秘密鍵のローテーション時の使用を想定しています。
[[keys.oauth2-rsa.public-keys]]
    # 公開鍵を指定する方法(`static` または `file`)を指定します。
    # `static` の場合は、以下の `key` に公開鍵の文字列を直接入力してください。
    # `file` の場合は、以下の `path` に公開鍵のファイルへのパスを入力してください。
    driver = 'static'

    [keys.oauth2-rsa.public-keys.static]
      # RSA公開鍵の文字列です。
      key = ''

    [keys.oauth2-rsa.public-keys.file]
      # RSA公開鍵のファイルです。
      path = ''

  [keys.oauth2-hmac]
    # OAuth2のHMAC署名で使用されるシークレットです。リフレッシュトークンの署名に使用されます。
    # ここで指定されたシークレットは検証にも使用されます。
    hash-secret = ''
    # OAuth2のHMAC検証で使用されるシークレットです。リフレッシュトークンの検証に使用されます。
    rotated-hash-secrets = []

  [keys.api-token]
    # APIトークン発行に使用されるシークレットです。
    # ここで指定されたシークレットは検証にも使用されます。
    hash-secret = ''
    # APIトークン検証に使用されるシークレットです。
    rotated-hash-secrets = []

  [keys.password-recovery]
    # パスワード再発行トークンに使用されるシークレットです。
    # ここで指定されたシークレットは検証にも使用されます。
    hash-secret = ''
    # パスワード再発行トークン検証に使用されるシークレットです。
    rotated-hash-secrets = []

  [keys.email-verification]
    # Emailアドレス有効化トークンに使用されるシークレットです。
    # ここで指定したシークレットは検証にも使用されます。
    hash-secret = ''
    # Emailアドレス有効化トークン検証に使用されるシークレットです。
    rotated-hash-secrets = []

3.2.2.2.9. event-bus

Property

Description

Default

driver

イベントバスのドライバーです nats-streaming

nats-streaming

publish-interval

イベントバスへイベントをパブリッシュする間隔です。Go言語のtime.Durationの文字列表現で指定します。

10s

function-timeout

イベントバスから受け取ったイベント処理のタイムアウトです。タイムアウトした処理は失敗として扱われ、イベント再配信の対象となります。

1h

max-concurrent

サブスクライバーの同時実行数です。

3

only-subscribe

サブスクライブのみ行うイベントバスの設定です。

[]

[event-bus]
  # イベントバスのドライバーです `nats-streaming`
  driver = 'nats-streaming'
  # イベントバスへイベントをパブリッシュする間隔です。Go言語のtime.Durationの文字列表現で指定します。
  publish-interval = '10s'
  # イベントバスから受け取ったイベント処理のタイムアウトです。
  # タイムアウトした処理は失敗として扱われ、イベント再配信の対象となります。
  function-timeout = '1h'
  # サブスクライバーの同時実行数です。
  max-concurrent = 3
  # サブスクライブのみ行うイベントバスの設定です。
  only-subscribe = []

3.2.2.2.10. api-token

Property

Description

Default

limit-per-user

ユーザーあたりのAPIトークンの発行上限数です。

3

default-expiration-period

APIトークンの有効期限です。

876000h

[api-token]
  # ユーザーあたりのAPIトークンの発行上限数です。
  limit-per-user = 3
  # APIトークンの有効期限です。
  default-expiration-period = '876000h'

3.2.2.2.11. user

Property

Description

Default

limit

ユーザー登録数の上限です。

10000

[user]
  # ユーザー登録数の上限です。
  limit = 10000

3.2.2.2.12. user-email

Property

Description

Default

limit-per-user

1ユーザーが登録できるメールアドレスの数の上限です。

1

verification-email-template-path

メールアドレス検証時に送信されるメールのテンプレートのパスです。

verification-expiration-period

Email検証の有効期限です。Go言語のtime.Durationの文字列表現で指定します。

3h

verification-page-url

Email検証完了用のリダイレクト先のURLです。

http://127.0.0.1:8080/email/activate

注釈

verification-email-template-path で指定するテンプレートのファイルは、以下のようなTOML形式にしてください。 以下のように変数を使用できます。

verification_email_body="""
{{.Email}} -> 検証するEmailアドレス
{{.URL}} -> 検証を完了するためにユーザーにクリックしてもらう一時リンク
{{.ExpiresAt}} -> 有効期限(時間)
"""
[user-email]
  # 1ユーザーが登録できるメールアドレスの数の上限です。
  limit-per-user = 1
  # メールアドレス検証時に送信されるメールのテンプレートのパスです。
  # テンプレートのファイルは、以下のようなTOML形式にしてください。
  # 以下のように変数を使用できます。
  #
  # verification_email_body="""
  # {{.Email}} -> 検証するEmailアドレス
  # {{.URL}} -> 検証を完了するためにユーザーにクリックしてもらう一時リンク
  # {{.ExpiresAt}} -> 有効期限(時間)
  # """
  # verification_email_title="メールタイトル"
  #
  verification-email-template-path = ''
  # Email検証の有効期限です。Go言語のtime.Durationの文字列表現で指定します。
  verification-expiration-period = '3h'
  # Email検証完了用のリダイレクト先のURLです。
  verification-page-url = 'http://127.0.0.1:8080/email/activate'

3.2.2.2.13. user-password

Property

Description

Default

attempt-limit

パスワード試行回数のリミットです。

5

reset-attempt-count-threshold

パスワード試行回数がリセットされるまでの時間です。この時間がすぎるとパスワード試行回数がリセットされます。

24h

recovery-token-expiration-period

パスワードリカバリトークンの有効期限です。Go言語のtime.Durationの文字列表現で指定します。

1h

default-temporary-expiration-period

一時パスワードのデフォルト有効期限です。Go言語のtime.Durationの文字列表現で指定します。

6h

default-expiration-days

本パスワードのデフォルト有効期限(日数)です。

36500

recovery-email-template-path

パスワードリセット時に送信されるメールのテンプレートのパスです。

recovery-page-url

パスワード変更アプリのリダイレクトURLで使用するベースURLです。一時パスワードで認証が行われたときのリダイレクト先として使用されます。

http://localhost:8080

注釈

recovery-email-template-path で指定するテンプレートのファイルは、以下のようなTOML形式にしてください。 以下のように変数を使用できます。

password_recovery_token_body="""
メール本文
{{.URL}} -> パスワード変更用のURL
{{.ExpiresAt}} -> 有効期限(時間)
"""
[user-password]
  # パスワード試行回数のリミットです。
  attempt-limit = 5
  # パスワード試行回数がリセットされるまでの時間です。
  # この時間がすぎるとパスワード試行回数がリセットされます。
  reset-attempt-count-threshold = '24h'
  # パスワードリカバリトークンの有効期限です。Go言語のtime.Durationの文字列表現で指定します。
  recovery-token-expiration-period = '1h'
  # 一時パスワードのデフォルト有効期限です。Go言語のtime.Durationの文字列表現で指定します。
  default-temporary-expiration-period = '6h'
  # 本パスワードのデフォルト有効期限(日数)です。
  default-expiration-days = 36500
  # パスワードリセット時に送信されるメールのテンプレートのパスです。
  # テンプレートのファイルは、以下のようなTOML形式にしてください。
  # 以下のように変数を使用できます。
  #
  # password_recovery_token_body="""
  #  メール本文
  # {{.URL}} -> パスワード変更用のURL
  # {{.ExpiresAt}} -> 有効期限(時間)
  # """
  # password_recovery_token_title="VM2M/intdash パスワードリセットのお知らせ"
  #
  recovery-email-template-path = ''

  # パスワード変更アプリのリダイレクトURLで使用するベースURLです。
  # 一時パスワードで認証が行われたときのリダイレクト先として使用されます。
  recovery-page-url = 'http://localhost:8080'

3.2.2.2.14. edge

Property

Description

Default

limit

登録できるエッジの数の上限です。

10000

extra-scopes

エッジ登録時に追加するスコープです。ここに指定したスコープが登録されない限りエッジの登録はできないことにご注意ください。

[]

[edge]
  # 登録できるエッジの数の上限です。
  limit = 10000
  # エッジ登録時に追加するスコープです。
  # ここに指定したスコープが登録されない限りエッジの登録はできないことにご注意ください。
  extra-scopes = []

3.2.2.2.15. compatibility

Property

Description

Default

add-user-and-edge-to-global-project-implicitly

true の場合、ユーザー/エッジが新規登録されたタイミングで、グローバルプロジェクトへ追加されます。

true

[compatibility]
  # `true` の場合、ユーザー/エッジが新規登録されたタイミングで、グローバルプロジェクトへ追加されます。
  add-user-and-edge-to-global-project-implicitly = true

3.2.2.2.16. tenant

Property

Description

Default

max-groups-count

1テナントあたりの最大グループ数です。

1000

max-project-count-per-group

1グループあたりの最大プロジェクト数です。

1000

[tenant]
  # 1テナントあたりの最大グループ数です。
  max-groups-count = 1000
  # 1グループあたりの最大プロジェクト数です。
  max-project-count-per-group = 1000

3.2.2.2.17. rate-limit

Property

Description

Default

quota-set-type

レートリミットの設定を選択します(smallmediumlarge)。 large が最も多くのトラフィックを許可する設定です。

large

enable

レートリミットを有効にします。

false

store.driver

レートリミットの状態をキャッシュする際のドライバーとして inmem または redis のいずれかを指定します。

inmem

store.redis.network

Redisとの接続方法として tcp または unix (UNIXドメインソケット)を選択します。

tcp

store.redis.address

Redisのアドレスです。

127.0.0.1:6749

store.redis.password

Redisのパスワードです。

P@ssw0rd

store.redis.db

DB

0

store.inmem.max-keys

キャッシュ保存時のキーの最大数

65535

[rate-limit]
  # レートリミットの設定を選択します(`small`、`medium`、`large`)。 `large` が最も多くのトラフィックを許可する設定です。
  quota-set-type = 'large'
  # レートリミットを有効にします。
  enable = false

  [rate-limit.store]
    # レートリミットの状態をキャッシュする際のドライバーとして `inmem` または `redis` のいずれかを指定します。
    driver = 'inmem'

    [rate-limit.store.redis]
      # Redisとの接続方法として `tcp` または `unix` (UNIXドメインソケット)を選択します。
      network = 'tcp'
      # Redisのアドレスです。
      address = '127.0.0.1:6749'
      # Redisのパスワードです。
      password = 'P@ssw0rd'
      # DB
      db = 0

    # inmemを使用する場合の設定
    [rate-limit.store.inmem]
      # キャッシュ保存時のキーの最大数
      max-keys = 65535

3.2.2.2.18. gops

Property

Description

Default

enable

gopsによるプロファイリングを有効にします。

false

address

gopsのプロファイリングのアドレスを指定します。

127.0.0.1:0

[gops]
  # gopsによるプロファイリングを有効にします。
  enable = false
  # gopsのプロファイリングのアドレスを指定します。
  address = '127.0.0.1:0'

3.2.2.2.19. health

Property

Description

Default

enable

ヘルスチェックサービスを有効にします。

true

bind-address

指定したホストとポートでヘルスチェックサーバーををリスンします。

0.0.0.0:9080

base-path

ヘルスチェックのベースとなるパスを指定します。

[health]
  # ヘルスチェックサービスを有効にします。
  enable = true
  # 指定したホストとポートでヘルスチェックサーバーををリスンします。
  bind-address = '0.0.0.0:9080'
  # ヘルスチェックのベースとなるパスを指定します。
  base-path = ''

3.2.2.2.20. smtp

SMTPサーバーの設定をします。メールサーバーを使用すると、パスワードの再発行など、メールを使用する機能を有効にできます。

Property

Description

Default

enable

SMTPを有効にします。falseの場合、メール送信を伴う機能は利用できません。

false

address

SMTPサーバーのアドレスです。

127.0.0.1:25

hostname

EHLO/HELO コマンドで使用するホスト名です。

localhost

enable-tls

TLS接続を有効にします。

false

enable-starttls-auto

starttlsを有効にします。このオプションを有効にする場合は enable-tlsfalse にします。

false

insecure-tls

信頼できないTLS接続を許可します。

false

authentication

認証方法を指定します。 空文字('')、 plaincram-md5 から指定します。空文字を指定した場合は認証をしません。

username

認証ユーザー名です。

password

認証パスワードです。

from

送信元アドレスです。

noreply@vm2m.jp

from-display-name

送信元表示名です。

VM2M Support Team

reply-to

返信先アドレスです。

[smtp]
  # SMTPを有効にします。falseの場合、メール送信を伴う機能は利用できません。
  enable = false
  # SMTPサーバーのアドレスです。
  address = '127.0.0.1:25'
  # EHLO/HELO コマンドで使用するホスト名です。
  hostname = 'localhost'
  # TLS接続を有効にします。
  enable-tls = false
  # starttlsを有効にします。このオプションを有効にする場合は `enable-tls` を `false` にします。
  enable-starttls-auto = false
  # 信頼できないTLS接続を許可します。
  insecure-tls = false
  # 認証方法を指定します。 空文字('')、 `plain` 、 `cram-md5` から指定します。空文字を指定した場合は認証をしません。
  authentication = ''
  # 認証ユーザー名です。
  username = ''
  # 認証パスワードです。
  password = ''
  # 送信元アドレスです。
  from = 'noreply@vm2m.jp'
  # 送信元表示名です。
  from-display-name = 'VM2M Support Team'
  # 返信先アドレスです。
  reply-to = ''

次に示すのはGmailを使用するときの例です。

[smtp]
  enable = true
  address = 'smtp.gmail.com:465'
  hostname = '<ホスト名>'
  enable-tls = true
  enable-starttls-auto = true
  insecure-tls = false
  authentication = 'plain'
  username = '<Gmailアドレス>'
  password = '<Gmail用のアプリパスワード>'  https://support.google.com/accounts/answer/185833?sjid=14000286588696750825-AP 参照
  from = 'noreply@vm2m.jp'
  from-display-name = 'VM2M Support Team'
  reply-to = ''