電子郵件服務

透過設定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:30465smtp.sendgrid.com:465

    • smpt.port設定為portForward.portOrig連線埠,而不是SMTP伺服器的實際連線埠。 smtp.portportForward.portOrig連線埠之間的對應是由Cloud Manager portForwards規則所建立(如下所示)。

由於密碼不得儲存在程式碼中,因此最好使用機密OSGi設定變數、使用AIO CLI或Cloud Manager API來設定電子郵件服務的使用者名稱和密碼。

通常使用彈性連線埠輸出來滿足與電子郵件服務整合,除非需要allowlistAdobeIP,在這種情況下,可以使用專用輸出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_USERNAMEEMAIL_PASSWORD OSGi變數和密碼:

  • Cloud Manager環境設定

  • 或使用aio CLI命令

    code language-shell
    $ aio cloudmanager:set-environment-variables --programId=<PROGRAM_ID> <ENVIRONMENT_ID> --secret EMAIL_USERNAME "myApiKey" --secret EMAIL_PASSWORD "password123"
    
recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69