当前位置: 首页 > 知识库问答 >
问题:

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

归德厚
2023-03-14

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

共有3个答案

公良琛
2023-03-14

我不认为有任何方法来做你想使用Outlook。

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

卫嘉言
2023-03-14
Process p = Runtime.getRuntime().exec("cmd /C start outlook ");
拓拔松
2023-03-14

您可以通过outlook通过javamail发送电子邮件,使用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

 类似资料:
  • 问题内容: 我正在使用。 使用发送电子邮件(通过)的最佳方法是什么? 问题答案: 有关使用Outlook的解决方案,请参见下面的TheoretiCAL答案。 否则,请使用python随附的smtplib。请注意,这将要求您的电子邮件帐户允许smtp,默认情况下不一定启用此功能。 编辑: 此示例使用保留域,如RFC2606中所述 为了使它真正与gmail配合使用,Doe先生需要进入gmail中的选项

  • 问题内容: 我正在尝试使用JavaMail以html格式发送电子邮件,但它似乎始终只在Outlook中显示为文本电子邮件。 这是我的代码: 有什么想法为什么电子邮件的html版本不会在Outlook中显示? 问题答案: 经过大量调查,我已经取得了一些重大进展。 首先,我建议不要使用JavaMail,而应使用Jakarta Commons Email 库。这确实大大简化了问题! 现在的代码是: 讲简

  • 我希望我的程序能够从我的公司outlook帐户发送电子邮件。我看了很多JMA的例子,似乎不是我想要的。 在哪里可以找到通过Outlook发送邮件的简单示例? 我是否应该将邮件系统移至独立的服务-应用程序?如果是,为什么?

  • 问题内容: 在我的中,我具有以下内容: 我的电子邮件代码: 当然,如果通过设置调试服务器,则可以在终端中看到该电子邮件。 但是,我实际上如何不将电子邮件发送到调试服务器,而是发送到user@gmail.com? 阅读你的答案后,让我弄明白一点: 你不能使用localhost(简单的ubuntu pc)发送电子邮件吗? 我认为在django 1.3中已经过时了,取而代之的是? 问题答案: 将电子邮件

  • 我想用Java从我的公司Outlook帐户发送邮件。但它说邮箱无法访问。我试过各种解决方案,比如更改主机名,但还是不行。错误保持不变。请对此提出任何解决方案。下面是我面临的错误片段。注意:我使用javax mail来实现这个目的。