Intégration de JavaMail à Email Delivery

Utilisez JavaMail pour envoyer des courriels via le service Email Delivery.

JavaMail fournit une structure indépendante de la plate-forme et du protocole pour créer des applications de courriel et de messagerie. Avant d'utiliser JavaMail, vous devez configurer Email Delivery, et noter vos informations d'envoi SMTP et vos informations d'identification SMTP. Ce manuel s'appuie sur l'utilisation de l'IDE Eclipse et de l'API JavaMail pour envoyer des courriels via Email Delivery.

Important

Pour plus de facilité, ces instructions contiennent un exemple de code qui doit être utilisé comme référence. Pour obtenir de l'aide, vous devez contacter le support client JavaMail. Ces étapes ont été testées sur une instance de calcul Oracle Linux Server version 7.9, et Java 8 et 11. Les applications Java (y compris JavaMail) doivent être mises à jour vers la dernière version pour s'assurer que les derniers protocoles, cryptages et patches de sécurité sont en conformité avec les cryptages et stratégies de sécurité pris en charge par Oracle.

Configuration de JavaMail pour l'envoi de courriels via Email Delivery

Pour permettre à JavaMail de tester la configuration d'Email Delivery, procédez comme suit :

  1. Assurez-vous qu'Email Delivery est configuré pour envoyer des courriels. Reportez-vous à Introduction.

    Remarque

    Les informations d'identification SMTP sont requises afin de configurer JavaMail pour l'utilisation d'Email Delivery. Veillez à noter le nom utilisateur et le mot de passe lorsque vous générez les informations d'identification SMTP.

  2. Ouvrez un navigateur et accédez à https://github.com/javaee/javamail/releases.
  3. Dans les téléchargements, sélectionnez javax.mail.jar pour télécharger la dernière version de JavaMail.
  4. Créez un projet dans Eclipse en procédant comme suit :
    1. Dans Eclipse, ouvrez le menu Fichier. Sélectionnez Nouveau, puis cliquez sur Projet Java.
    2. Dans la boîte de dialogue Créer un projet Java, entrez un nom de projet, puis cliquez sur Suivant.
    3. Dans la boîte de dialogue Paramètres Java, sélectionnez l'onglet Bibliothèques.
    4. Cliquez sur Ajouter des fichiers JAR externes.
    5. Dans la boîte de dialogue Sélection de fichiers JAR, accédez au dossier dans lequel vous avez téléchargé JavaMail. Sélectionnez le fichier javax.mail.jar, puis cliquez sur Ouvrir.
    6. Dans la boîte de dialogue Paramètres Java, cliquez sur Terminer.
  5. Dans Eclipse, dans la fenêtre de l'explorateur de packages, développez votre projet.
  6. Sous votre projet, cliquez avec le bouton droit de la souris sur le répertoire src, sélectionnez Nouveau, puis cliquez sur Classe.
  7. Dans la boîte de dialogue Nouvelle classe Java, entrez "OCIemail" dans le champ Nom, puis cliquez sur Terminer.
  8. Entrez le code suivant dans OCIemail.java pour envoyer un courriel de test avec JavaMail :

    import java.util.Properties;
    import javax.mail.Message;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
     
    public class OCIemail {
     
        // Replace FROM with your "From" address.
        // This address must be added to Approved Senders in the console.
        static final String FROM = "<sender email address>";
        static final String FROMNAME = "<sender name>";
     
        // Replace TO with a recipient address.
        static final String TO = "<recipient email address>";
     
        // Replace smtp_username with your Oracle Cloud Infrastructure SMTP username generated in console.
        static final String SMTP_USERNAME = "<username OCID from SMTP credentials>";
     
        // Replace smtp_password with your Oracle Cloud Infrastructure SMTP password generated in console.
        static final String SMTP_PASSWORD = "<SMTP password>";
     
        // Oracle Cloud Infrastructure Email Delivery hostname.
        static final String HOST = "<SMTP endpoint>";
     
        // The port you will connect to on the SMTP endpoint. Port 25 or 587 is allowed.
        static final int PORT = 587;
     
           static final String SUBJECT = "<subject of your email>";
           static final String BODY = String.join(
     
               System.getProperty("line.separator"),
               "<h1>OCI Email Delivery test</h1>",
               "<p>This email was sent with OCI Email Delivery using the ",
               "<a href='Javamail'>https://github.com/javaee/javamail'>Javamail Package</a>",
              " for <a href='Javahttps://www.java.com'>Java</a>."
     
           );
     
        public static void main(String[] args) throws Exception {
     
            // Create a Properties object to contain connection configuration information.
     
           Properties props = System.getProperties();
           props.put("mail.transport.protocol", "smtp");
           props.put("mail.smtp.port", PORT);
     
           //props.put("mail.smtp.ssl.enable", "true"); //the default value is false if not set
           props.put("mail.smtp.auth", "true");
           props.put("mail.smtp.auth.login.disable", "true");  //the default authorization order is "LOGIN PLAIN DIGEST-MD5 NTLM". 'LOGIN' must be disabled since Email Delivery authorizes as 'PLAIN'
           props.put("mail.smtp.starttls.enable", "true");   //TLSv1.2 is required
           props.put("mail.smtp.starttls.required", "true");  //Oracle Cloud Infrastructure required
     
            // Create a Session object to represent a mail session with the specified properties.
           Session session = Session.getDefaultInstance(props);
     
            // Create a message with the specified information.
            MimeMessage msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress(FROM,FROMNAME));
            msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
            msg.setSubject(SUBJECT);
            msg.setContent(BODY,"text/html");
     
            // Create a transport.
            Transport transport = session.getTransport();
               
     
            // Send the message.
     
            try
            {
     
                System.out.println("Sending Email now...standby...");
     
     
                // Connect to OCI Email Delivery using the SMTP credentials specified.
                transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD);    
     
                // Send email.
                transport.sendMessage(msg, msg.getAllRecipients());
                System.out.println("Email sent!");
     
            }
     
            catch (Exception ex) {
     
                System.out.println("The email was not sent.");
                System.out.println("Error message: " + ex.getMessage());
     
            }
     
            finally
     
            {
     
                // Close & terminate the connection.
                transport.close();
     
            }
     
        }
     
    }
  9. Dans le fichier OCIemail.java, remplacez ce qui suit par vos propres valeurs :

    Remarque

    Les adresses électroniques font la distinction entre les majuscules et les minuscules. Vérifiez que les adresses sont les mêmes que celles que vous avez entrées dans les expéditeurs approuvés dans la console.

    • FROM : remplacez la valeur par votre adresse électronique d'expéditeur. Cette adresse électronique doit d'abord être ajoutée à la liste des expéditeurs approuvés dans Email Delivery.
    • TO : remplacez la valeur par l'adresse électronique de votre destinataire.
    • Informations d'identification SMTP : remplacez smtp_username et smtp_password par vos nom utilisateur et mot de passe SMTP Oracle Cloud Infrastructure générés dans la console.
    • HOST : remplacez la valeur par l'adresse SMTP Email Delivery. Par exemple, smtp.us-ashburn-1.oraclecloud.com.
  10. Reportez-vous aux exigences relatives à la configuration de la connexion SMTP avec Email Delivery. TLSv1.2 est requis pour Email Delivery. Certains paramètres par défaut de JavaMail doivent être désactivés. Par exemple, JavaMail fournit les autorisations dans un certain ordre. L'ordre d'autorisation par défaut est "LOGIN PLAIN DIGEST-MD5 NTLM". Dans la mesure où Email Delivery autorise l'utilisation de l'option "LIEN", l'option "LOGINE" doit être désactivée. Par exemple, le code suivant est entré dans le fichier OCIemail.java pour configurer la connexion SMTP :

    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.auth.login.disable", "true"); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.starttls.required", "true"); 
  11. Ouvrez le menu Fichier et cliquez sur Enregistrer.
  12. Pour créer le projet, ouvrez le menu Projet, puis sélectionnez Créer un projet. Si cette option est désactivée, la création automatique est peut-être activée.
  13. Pour démarrer le programme et envoyer le courriel, ouvrez le menu Exécuter, puis cliquez sur Exécuter.
  14. Vérifiez le résultat. Si l'envoi du courriel a réussi, la console affiche un message en ce sens. Sinon, elle affiche un message d'erreur.
  15. Connectez-vous à la boîte de réception du destinataire pour vérifier la réception du courriel.