API Java Mail: envoyer des e-mails via le compte Outlook d'entreprise


Je veux que mon programme puisse envoyer des e-mails à partir de mon compte Outlook d'entreprise. J'ai regardé de nombreux exemples JMA qui ne semblent pas être ce que je veux.

  1. Où puis-je trouver des exemples simples d'envoi de mails via Outlook?
  2. Devrais-je déplacer le système d'envoi vers une application de service distincte? et si oui, pourquoi?
Author: Ryan Heitner, 2013-12-16

4 answers

Tout ce dont vous avez besoin est vos paramètres SMTP pour votre compte d'entreprise. Définissez-les dans votre programme à l'aide de l'API Java mail et c'est tout. par exemple

Properties props = System.getProperties();
props.put("mail.smtp.host", "your server here");
Session session = Session.getDefaultInstance(props, null);

Exemple: ici et ici

 6
Author: adi, 2013-12-16 14:49:50

Vous devez d'abord télécharger javax.mail JAR. Ensuite, essayez le code suivant:

import java.io.IOException;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMail {

    public static void main(String[]args) throws IOException {

        final String username = "enter your username";
        final String password = "enter your password";

        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", "outlook.office365.com");
        props.put("mail.smtp.port", "587");

        Session session = Session.getInstance(props,
          new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
          });

        try {

            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("enter your outlook mail address"));
            message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse("Enter the recipient mail address"));
            message.setSubject("Test");
            message.setText("HI");

            Transport.send(message);

            System.out.println("Done");

        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
}
 8
Author: Rakshith, 2015-11-04 15:41:51

D'après ce que je peux voir, il vous manque l'importation suivante:

import java.io.IOException;

Incluez-le simplement dans les importations de classe au moment de l'ancrage de cette classe et votre problème devrait être résolu.

 1
Author: Scott Whalen, 2014-12-01 15:40:38

J'ai essayé avec outlook.office365.com comme un nom d'hôte et obtenu authentication unaccepted exception. Lorsque vous essayez avec smtp-mail.outlook.com Je suis capable d'envoyer des mails via Outlook avec Javamail API.

Pour plus de détails Consultez les paramètres d'Outlook sur le site officiel d'Outlook.

Pour le code de démonstration de travail complet Lire cette réponse.

 1
Author: Inzimam Tariq IT, 2017-05-23 12:10:21