电子邮件服务
通过将AEM DefaultMailService
配置为使用高级联网出口端口,从AEM as a Cloud Service发送电子邮件。
由于(大部分)邮件服务不会通过HTTP/HTTPS运行,因此必须代理从AEM as a Cloud Service到邮件服务的连接。
-
smtp.host
设置为OSGi环境变量$[env:AEM_PROXY_HOST;default=proxy.tunnel]
,以便通过出口路由。$[env:AEM_PROXY_HOST]
是AEM as a Cloud Service映射到内部proxy.tunnel
主机的保留变量。- 请勿尝试通过Cloud Manager设置
AEM_PROXY_HOST
。
-
smtp.port
设置为映射到目标电子邮件服务主机和端口的portForward.portOrig
端口。 此示例使用映射:AEM_PROXY_HOST:30465
→smtp.sendgrid.com:465
。smpt.port
设置为portForward.portOrig
端口,而不是SMTP服务器的实际端口。smtp.port
和portForward.portOrig
端口之间的映射由Cloud ManagerportForwards
规则建立(如下所示)。
由于密码不能存储在代码中,因此最好使用机密OSGi配置变量、使用AIO CLI或Cloud Manager API设置来提供电子邮件服务的用户名和密码。
通常,灵活端口出口用于满足与电子邮件服务的集成,除非需要allowlist
AdobeIP,在这种情况下,可以使用专用出口IP地址。
此外,请查看有关发送电子邮件的AEM文档。
高级联网支持
以下高级联网选项支持以下代码示例。
在执行本教程之前,请确保已设置适当的高级联网配置。
OSGi配置
此OSGi配置示例将AEM Mail OSGi服务配置为通过enableEnvironmentAdvancedNetworkingConfiguration操作的以下Cloud Manager portForwards
规则使用外部邮件服务。
...
"portForwards": [{
"name": "smtp.mymail.com",
"portDest": 465,
"portOrig": 30465
}]
...
ui.config/src/jcr_root/apps/wknd-examples/osgiconfig/config/com.day.cq.mailer.DefaultMailService.cfg.json
根据您的电子邮件提供商的要求配置AEM DefaulMailService(例如smtp.ssl
等)。
{
"smtp.host": "$[env:AEM_PROXY_HOST;default=proxy.tunnel]",
"smtp.port": "30465",
"smtp.user": "$[env:EMAIL_USERNAME;default=myApiKey]",
"smtp.password": "$[secret:EMAIL_PASSWORD]",
"from.address": "noreply@wknd.site",
"smtp.ssl": true,
"smtp.starttls": false,
"smtp.requiretls": false,
"debug.email": false,
"oauth.flow": false
}
可以使用以下任一方式为每个环境设置EMAIL_USERNAME
和EMAIL_PASSWORD
OSGi变量和密钥:
-
或使用
aio CLI
命令code language-shell $ aio cloudmanager:set-environment-variables --programId=<PROGRAM_ID> <ENVIRONMENT_ID> --secret EMAIL_USERNAME "myApiKey" --secret EMAIL_PASSWORD "password123"