繁体   English   中英

如何通过 Java 从 Outlook 发送电子邮件?

[英]How to send an email from Outlook via Java?

我被困在公司防火墙后面,它不允许我通过 Java Mail API 或 Apache Commons Email 等传统方式发送电子邮件,甚至无法向组织内的其他人发送电子邮件(无论如何,这就是我想要的)。 但是我的 Outlook 2010 显然可以发送这些电子邮件。 我想知道是否有办法通过 Java 代码使 Outlook 2010 自动化,以便 Outlook 可以发送电子邮件? 我知道像“mailto”这样的东西可以用来弹出带有预填充信息的默认 Outlook 发送对话框,但我正在寻找一种方法来让发送操作在幕后发生。 感谢您提供任何信息。

您可以使用javamail通过 Outlook 发送电子邮件,使用Outlook 官方网站上描述的配置

这是小演示代码

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

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);
    }
}

.
注意:我使用Javamail API 1.5.6对此进行了测试

Process p = Runtime.getRuntime().exec("cmd /C start outlook ");

我不认为有任何方法可以使用 Outlook 做您想做的事情。

大概您的邮件服务器也在公司防火墙后面。 如果您的客户端使用 Outlook,则您的服务器可能使用 Exchange。 Exchange 可以配置为支持用于发送邮件的标准 SMTP 协议,这将允许使用 JavaMail。 如果您无法将 Exchange 服务器配置为支持 SMTP,您仍然可以使用Exchange Web 服务 如果这不起作用,您可能需要使用支持 Microsoft 专有邮件协议的JavaMail 第三方产品之一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM