L'API du service Mail pour Java est compatible avec l'interface JavaMail (javax.mail
) pour l'envoi d'e-mails.
Avant de commencer
Enregistrez vos adresses e-mail d'expéditeur en tant qu'expéditeurs autorisés. Pour obtenir plus d'informations, consultez la section Utilisateurs autorisés à envoyer des e-mails.
Envoyer des e-mails
Pour envoyer des e-mails, servez-vous des classes JavaMail fournies avec le SDK App Engine.
Lorsque vous créez une session JavaMail, App Engine utilise le service Mail pour envoyer les messages si vous n'indiquez aucune configuration de serveur SMTP. Vous pouvez également ajouter une configuration SMTP pour les fournisseurs de messagerie tiers compatibles, tels que Mailgun, Mailjet ou SendGrid.
Pour envoyer un message, procédez comme suit :
Créez un message à l'aide d'un objet
Session
JavaMail.Créez un objet
MimeMessage
.Pour définir l'expéditeur et le destinataire du message, utilisez la classe
InternetAddress
.Identifiez l'expéditeur en appelant la méthode
setFrom()
sur l'objetMimeMessage
. Vous pouvez éventuellement fournir un nom personnel sous forme de chaîne dans le deuxième paramètre.Identifiez le destinataire en transmettant un type de destinataire et une adresse à la méthode
addRecipient()
. Le type de destinataire peut êtreMessage.RecipientType.TO
,Message.RecipientType.CC
ouMessage.RecipientType.BCC
.
Le constructeur
InternetAddress
génère une exceptionAddressException
si l'adresse e-mail s'avère être incorrecte.Pour définir une adresse de réponse, utilisez la méthode
setReplyTo()
.Établissez le contenu du message en appelant des méthodes sur l'objet
MimeMessage
. Définissez l'objet avecsetSubject()
, puis le contenu du corps en texte brut avecsetText()
.Pour envoyer le message, utilisez la méthode statique
send()
sur la classeTransport
.
Le service Mail vous permet de spécifier un ensemble limité d'en-têtes pour les e-mails sortants. Pour obtenir plus d'informations, consultez la section En-têtes facultatifs que vous pouvez utiliser.
L'exemple de code suivant montre comment envoyer un message :
Les appels vers le service Mail sont effectués de façon asynchrone et affichent immédiatement un résultat. Ce service gère le processus visant à contacter les serveurs de messagerie des destinataires et à transmettre le message. Si un problème survient pendant l'envoi d'un message à un destinataire ou si le serveur de messagerie d'un destinataire affiche un "message d'erreur automatique", le message d'erreur est envoyé à l'expéditeur.
Envoyer des messages incluant différents types de données
Vous pouvez envoyer des messages incluant différents types de données, tels qu'un message avec des pièces jointes ou un message avec du texte brut et du contenu HTML.
Pour envoyer un message incluant différents types de données, procédez comme suit :
Créez un objet
MimeMultipart
pour contenir les différentes données, puis créez un objetMimeBodyPart
pour chaque pièce jointe ou un autre corps de message, et ajoutez-le au conteneur.Faites passer le conteneur en tant que "content" (contenu) de l'objet
MimeMessage
.
L'exemple de code suivant montre comment envoyer un message contenant différents types de données :
Pour des raisons de sécurité, les données d'un message et les pièces jointes doivent correspondre à l'un des types autorisés et les noms des fichiers des pièces jointes doivent se terminer par une extension reconnue pour le type. Pour consulter la liste des types et extensions de nom de fichier autorisés, consultez la section Messages avec pièces jointes.