コンテンツにスキップ
「プリザンター入門」発売中!

メール送信できない

回答

バージョン1.5.6.0以降を使用し、下記を参考にMail.jsonの各パラメータを設定してください。


概要

以下のような事象によってメール送信を行えない場合は、バージョン1.5.6.0以降で利用できるMail.jsonの各パラメータを適切に設定してください。

No. 事象 設定すべきパラメータ
1 SSL証明書の失効チェックでエラーになる SmtpCheckCertificateRevocation
2 特定のTLSバージョンを強制したい SmtpSslProtocols
3 SMTP接続がタイムアウトする(既定値が不適切) SmtpTimeout
4 HELOコマンドのドメイン名を指定したい SmtpLocalDomain
5 TLS必須環境でSTARTTLSのダウングレードを防ぎたい SmtpRequireTls
6 送信元IPアドレスを明示的に指定したい SmtpLocalEndPoint
7 プロキシ経由でSMTPサーバに接続する必要がある SmtpProxy*系の各パラメータ
8 クライアント証明書認証が必要 SmtpClientCertificate

1. SSL証明書の失効チェックでエラーになる

Mail.jsonのSmtpCheckCertificateRevocationをfalseに設定し、証明書の失効確認をスキップしてください。
 

{
    "SmtpCheckCertificateRevocation": false
}

2. 特定のTLSバージョンを強制したい

Mail.jsonのSmtpSslProtocolsに強制したいTLSのバージョンを指定してください。

{
    "SmtpCheckCertificateRevocation": true,
    "SmtpSslProtocols": "Tls12, Tls13",
    "SmtpTimeout": 120000
}

3. SMTP接続がタイムアウトする(既定値が不適切)

Mail.jsonのSmtpTimeoutに、通信環境に応じたタイムアウト時間(単位:ms)を指定してください。

{
    "SmtpTimeout": 300000
}

4. HELOコマンドのドメイン名を指定したい

Mail.jsonのSmtpLocalDomainに、SMTPクライアントとして使用するローカルドメイン名を指定してください。

{
    "SmtpLocalDomain": "mail.example.com"
}

5. TLS必須環境でSTARTTLSのダウングレードを防ぎたい

Mail.jsonのSmtpRequireTlsをtrueに設定し、REQUIRETLS拡張を有効にしてください。

{
    "SmtpRequireTls": true
}

6. 送信元IPアドレスを明示的に指定したい

Mail.jsonのSmtpLocalEndPointに、接続元として使用するローカルエンドポイントを"IPアドレス:ポート番号"形式で指定してください。

{
    "SmtpLocalEndPoint": "192.168.1.10:0"
}

7. プロキシ経由でSMTPサーバに接続する必要がある

以下の各パラメータを設定し、HTTPSプロキシ経由で送信するように構成してください。以下の設定例では明示的に指定していますが、セキュリティの観点からSmtpProxyUserNameとSmtpProxyPasswordは環境変数で設定することを推奨します。詳細はMail.jsonを参照してください。

{
    "SmtpProxyType": "Https",
    "SmtpProxyHost": "proxy.example.com",
    "SmtpProxyPort": 443,
    "SmtpProxyUserName": "proxy-user",
    "SmtpProxyPassword": "secret",
    "SmtpProxyCheckCertificateRevocation": true,
    "SmtpProxySslProtocols": "Tls12, Tls13"
}

8. クライアント証明書認証が必要

Mail.jsonのSmtpClientCertificateにクライアント証明書を表すパラメータを指定してください。
 

{
    "SmtpClientCertificate": {
        "StoreName": "My",
        "StoreLocation": "CurrentUser",
        "X509FindType": "FindByThumbprint",
        "FindValue": "ABCD1234..."
    }
}