38.5. SSL 支持
底层邮件框架负责提供 SSL 支持。您可以通过完全指定必要的 Java 邮件 API 配置选项来配置 SSL/TLS 支持,或者通过组件或端点配置提供配置的 SSLContextParameters。
38.5.1. 使用 JSSE 配置工具
邮件组件通过 Camel JSSE 配置实用程序支持 SSL/TLS 配置。这个工具可显著减少您需要编写的组件特定代码数量,并在端点和组件级别进行配置。以下示例演示了如何将实用程序与邮件组件一起使用。
端点的编程配置
KeyStoreParameters ksp = new KeyStoreParameters(); ksp.setResource("/users/home/server/truststore.jks"); ksp.setPassword("keystorePassword"); TrustManagersParameters tmp = new TrustManagersParameters(); tmp.setKeyStore(ksp); SSLContextParameters scp = new SSLContextParameters(); scp.setTrustManagers(tmp); Registry registry = ... registry.bind("sslContextParameters", scp); ... from(...) .to("smtps://smtp.google.com?username=user@gmail.com&password=password&sslContextParameters=#sslContextParameters");
基于 Spring DSL 的端点配置
... <camel:sslContextParameters id="sslContextParameters"> <camel:trustManagers> <camel:keyStore resource="/users/home/server/truststore.jks" password="keystorePassword"/> </camel:trustManagers> </camel:sslContextParameters>... ... <to uri="smtps://smtp.google.com?username=user@gmail.com&password=password&sslContextParameters=#sslContextParameters"/>...
38.5.2. 直接配置 JavaMail
Camel 使用 Jakarta JavaMail,它只信任由已知的证书颁发机构(默认的 JVM 信任配置)发布的证书。如果您发布自己的证书,您必须将 CA 证书导入到 JVM 的 Java 信任存储文件中,请覆盖默认的 JVM 信任存储文件(请参阅 JavaMail 中的 SSLNOTES.txt
)。