打开Outlook以通过电子邮件发送网页

时间:2016-04-18 10:24:25

标签: java

我想从Java向Outlook发送一个网页,但最初没有指定我发送给他的人。简而言之,我想实现Internet Explorer通过电子邮件发送网页的功能。我目前无法解决这个问题。

这是我尝试过的但它没有用,它给出了错误:

  

线程中的异常" AWT-EventQueue-0"   java.lang.IllegalArgumentException:URI方案不是" mailto"

这是我的代码:

File htmlFile = new File("http://stackoverflow.com/questions/ask");

try {
    Desktop.getDesktop().mail( htmlFile.toURI() );
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

1 个答案:

答案 0 :(得分:0)

您收到此错误是因为您指定的网页URI是“http”而不是“mailto”,这是预期的。检查documentation,您可以使用实用程序方法。

所以,要发送电子邮件,请使用以下内容:

    String subject = URLEncoder.encode("Test subject").replace("+", "%20");
    String body = URLEncoder.encode("Test body").replace("+", "%20");
    Desktop.getDesktop().browse(new URI("mailto:?subject="+subject+"&body="+body));

或者这个(如果提供mail()):

Desktop.getDesktop().mail(new URI("mailto:?subject="+subject+"&body="+body));

这将设置没有收件人的主题和正文。邮件客户端也可能是Outlook,但取决于系统设置(为默认邮件客户端设置的内容)。

如果您希望在邮件内容中发送网页,则应首先read it,如果您只想发送网址,请对其进行编码并发送到正文中。