電子郵件服務
透過設定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設定範例透過enableEnvironmentAdvancedNetworkingConfiguration作業的下列Cloud Manager portForwards
規則,設定AEM Mail OSGi Service使用外部郵件服務。
...
"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"