電子郵件服務

透過設定AEM從AEMas a Cloud Service傳送電子郵件 DefaultMailService 以使用進階網路輸出埠。

由於(大部分)郵件服務不會透過HTTP/HTTPS執行,因此必須代理從AEMas a Cloud Service連線到郵件服務。

  • smtp.host 設為OSGi環境變數 $[env:AEM_PROXY_HOST;default=proxy.tunnel] 所以會透過出口進行路由。

    • $[env:AEM_PROXY_HOST] 是保留的變數,AEMas a Cloud Service會對應至內部 proxy.tunnel 主機。
    • 請勿嘗試設定 AEM_PROXY_HOST 透過Cloud Manager。
  • 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設定。

通常 彈性連線埠輸出 用於滿足與電子郵件服務整合,除非有必要 allowlist AdobeIP,在此情況下 專用輸出ip位址 可使用。

此外,請檢閱AEM檔案,網址為 傳送電子郵件.

進階網路支援

下列進階網路選項支援下列程式碼範例。

確保 適當 在學習本教學課程之前,已設定進階網路設定。

OSGi設定

此OSGi設定範例透過以下Cloud Manager將AEM Mail OSGi Service設定為使用外部郵件服務 portForwards 的規則 enableEnvironmentAdvancedNetworkingConfiguration 作業。

...
"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 預設郵件服務 根據您的電子郵件提供者的要求(例如 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