Java - 使用默认电子邮件提供商发送邮件

时间:2012-07-11 09:06:39

标签: java

我编写了一个Java代码,以便在按下按钮时,默认电子邮件提供商会自动打开以发送电子邮件。我是否有可能自动将文件附加到电子邮件中并为电子邮件设置主题?

到目前为止这是代码:

        if(role.getValue().equals("1")) {
                try {
                    Desktop.getDesktop().browse(new URI("mailto:username@domain.com?subject=New_Profile&body=see attachment&attachment="PVS_XML.xml""));

                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (URISyntaxException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }       
        }

上面的代码由于某种原因不起作用:它强调整个mailto方法说:语法错误,插入“;”完成BlockStatements。

任何想法为什么?

3 个答案:

答案 0 :(得分:2)

添加“mailto:username@domain.com”链接。这应该会触发您的浏览器启动标准邮件程序。

这与Wicket无关。这是标准的浏览器行为。

答案 1 :(得分:2)

'mailto:email@email.com?subject=Software&body=see attachment&attachment="C:/abc/def/qwertyp.zip"'

尝试以上它应该工作

编辑1:

不确定它是否可以在桌面上运行,但可以作为网页链接

从java作为字符串:

"'mailto:username@domain.com?subject=New_Profile&body=see attachment&attachment=\"PVS_XML.xml\"";

编辑2:

Desktop desktop = Desktop.getDesktop();
        String message = "mailto:username@domain.com?subject=New_Profile&body=seeAttachment&attachment=c:/Update8.txt";
        URI uri = URI.create(message);
        desktop.mail(uri);

还发现附件部分未在Outlook中实现,因此它不支持使用mailto的附件。它取决于邮件客户端实现解析附件参数。

答案 2 :(得分:0)

Desktop无效,因为它在服务器上运行,而不是在客户端上运行。它可能会打开服务器中的Outlook窗口,但是:)

你应该像其他人所说的那样使用mailto:链接。但是,用户必须手动附加文件。浏览器强制要求这种安全问题。