Comment envoyer un e-mail depuis Outlook via Java?

je suis coincé derrière un pare-feu d'entreprise qui ne me permettra pas d'envoyer de courrier électronique par des moyens conventionnels tels que L'API Java Mail ou Apache Commons Email, même à d'autres personnes au sein de l'organisation(ce qui est tout ce que je veux de toute façon). Mais mon Outlook 2010 peut évidemment envoyer ces e-mails. Je me demandais s'il y avait un moyen d'automatiser Outlook 2010 via le code Java pour Qu'Outlook puisse envoyer les e-mails ? Je sais que des choses comme "mailto" peuvent être utilisées pop-up la boîte de dialogue Outlook envoyer par défaut avec des informations pré-remplies, mais Je cherche un moyen pour que l'opération send se passe en coulisse. Merci pour toute info.

0
demandé sur Jenna Maiz 2016-08-30 06:29:44

3 réponses

vous pouvez envoyer des e-mails par l'intermédiaire d'outlook avec javamail utiliser les configurations décrites sur site officiel D'Outlook.

voici le petit code de démo

public static void main(String[] args) {
    final String username = "your email";  // like yourname@outlook.com
    final String password = "*********";   // password here

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

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

    try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(username));
        message.setRecipients(Message.RecipientType.TO,
            InternetAddress.parse("receiver mail"));   // like inzi769@gmail.com
        message.setSubject("Test");
        message.setText("HI you have done sending mail with outlook");

        Transport.send(message);

        System.out.println("Done");

    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }
}

.

Note: j'ai testé cela avec Javamail API 1.5.6

3
répondu Inzimam Tariq IT 2016-12-27 14:46:13
Process p = Runtime.getRuntime().exec("cmd /C start outlook ");
0
répondu zpc 2016-08-30 03:38:31

Je ne pense pas qu'il y ait moyen de faire ce que vous voulez en utilisant Outlook.

probablement votre serveur de messagerie est aussi derrière le pare-feu d'entreprise. Si vous utilisez Outlook pour votre client, vous utilisez probablement Exchange pour votre serveur. Exchange peut être configuré pour prendre en charge le protocole standard SMTP pour l'envoi de courrier, ce qui permettrait L'utilisation de JavaMail. Si vous ne pouvez pas configurer votre serveur Exchange pour prendre en charge SMTP, vous pouvez toujours utiliser Exchange Web Services . Si cela ne fonctionne pas, vous pourriez avoir besoin d'utiliser l'un des JavaMail produits tiers qui prend en charge le Microsoft proprietary mail protocol.

0
répondu Bill Shannon 2016-08-30 06:20:43