Envoyer des emails depuis AEM as a Cloud Service en configurant AEM DefaultMailService
pour utiliser les ports de sortie réseau avancés.
Comme (la plupart) des services de messagerie ne s’exécutent pas sur HTTP/HTTPS, les connexions aux services de messagerie d’AEM as a Cloud Service doivent être traitées par proxy.
smtp.host
est défini sur la variable d’environnement OSGi. $[env:AEM_PROXY_HOST;default=proxy.tunnel]
il est donc acheminé par la sortie.
$[env:AEM_PROXY_HOST]
est une variable réservée qui AEM as a Cloud Service est mappée sur la variable interne proxy.tunnel
hôte.AEM_PROXY_HOST
via Cloud Manager.smtp.port
est défini sur la valeur portForward.portOrig
port qui mappe sur l’hôte et le port du service de messagerie de destination. Cet exemple utilise le mapping : AEM_PROXY_HOST:30465
→ smtp.sendgrid.com:465
.
smpt.port
est défini sur la valeur portForward.portOrig
et NON le port réel du serveur SMTP. Mappage entre les smtp.port
et le portForward.portOrig
Le port est établi par Cloud Manager portForwards
(comme illustré ci-dessous).Puisque les secrets ne doivent pas être stockés dans le code, le nom d’utilisateur et le mot de passe du service de messagerie sont mieux fournis à l’aide de variables de configuration OSGi secrètes, défini à l’aide de l’interface de ligne de commande AIO ou de l’API Cloud Manager.
En règle générale, sortie de port flexible est utilisé pour répondre à l’intégration à un service de messagerie, sauf s’il est nécessaire de allowlist
l’adresse IP de l’Adobe, auquel cas adresse ip de sortie dédiée peut être utilisé.
Consultez également AEM documentation sur envoyer un email.
L’exemple de code suivant est pris en charge par les options de mise en réseau avancées suivantes.
Assurez-vous que la variable approprié une configuration réseau avancée a été configurée avant de suivre ce tutoriel.
Pas de mise en réseau avancée | Sortie de port flexible | Adresse IP sortante dédiée | Réseau privé virtuel |
---|---|---|---|
✘ | ✔ | ✔ | ✔ |
Cet exemple de configuration OSGi configure AEM Mail OSGi Service pour utiliser un service de messagerie externe, au moyen de Cloud Manager suivant : portForwards
de la règle enableEnvironmentAdvancedNetworkingConfiguration opération.
...
"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
Configuration d’AEM DefaultMailService selon les besoins de votre fournisseur de messagerie (par exemple, smtp.ssl
, etc.).
{
"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
}
Le EMAIL_USERNAME
et EMAIL_PASSWORD
La variable OSGi et le secret peuvent être définis par environnement, à l’aide de :
ou en utilisant la variable aio CLI
command
$ aio cloudmanager:set-environment-variables --programId=<PROGRAM_ID> <ENVIRONMENT_ID> --secret EMAIL_USERNAME "myApiKey" --secret EMAIL_PASSWORD "password123"