メール送信できない
回答¶
バージョン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に設定し、証明書の失効確認をスキップしてください。
2. 特定のTLSバージョンを強制したい¶
「Mail.json」のSmtpSslProtocolsに強制したいTLSのバージョンを指定してください。
{
"SmtpCheckCertificateRevocation": true,
"SmtpSslProtocols": "Tls12, Tls13",
"SmtpTimeout": 120000
}
3. SMTP接続がタイムアウトする(デフォルト値が不適切)¶
「Mail.json」のSmtpTimeoutに、通信環境に応じたタイムアウト時間(単位:ms)を指定してください。
4. HELOコマンドのドメイン名を指定したい¶
「Mail.json」のSmtpLocalDomainに、SMTPクライアントとして使用するローカルドメイン名を指定してください。
5. TLS必須環境でSTARTTLSのダウングレードを防ぎたい¶
「Mail.json」のSmtpRequireTlsをtrueに設定し、REQUIRETLS拡張を有効にしてください。
6. 送信元IPアドレスを明示的に指定したい¶
「Mail.json」のSmtpLocalEndPointに、接続元として使用するローカルエンドポイントを"IPアドレス:ポート番号"形式で指定してください。
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にクライアント証明書を表すパラメータを指定してください。
