我想从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();
}
答案 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,如果您只想发送网址,请对其进行编码并发送到正文中。