Java:向使用getDesktop()启动的邮件客户端添加附件。邮件(URI)

Java:向使用getDesktop()启动的邮件客户端添加附件。邮件(URI),java,email-attachments,Java,Email Attachments,在Java中,如何启动邮件客户端以及作为附件的给定文件-特别是使用方法Desktop.getDesktop().mail(URI) 我正在使用Windows 7,想启动MS Outlook。这是一个好问题 实际上,作为参数发送到方法desktop.mail(URI)的URI允许设置为、抄送、密件抄送、主题、正文,不允许设置附件。(见附件) 然而,附件实际上是电子邮件正文的特殊格式片段。有关详细信息,请阅读以下内容:。 这意味着您可以使用Base64对二进制附件进行编码,并创建已包含任何通用文件附

在Java中,如何启动邮件客户端以及作为附件的给定文件-特别是使用方法
Desktop.getDesktop().mail(URI)

我正在使用Windows 7,想启动MS Outlook。

这是一个好问题

实际上,作为参数发送到方法
desktop.mail(URI)
URI
允许设置为、抄送、密件抄送、主题、正文,不允许设置附件。(见附件)

然而,附件实际上是电子邮件正文的特殊格式片段。有关详细信息,请阅读以下内容:。
这意味着您可以使用Base64对二进制附件进行编码,并创建已包含任何通用文件附件的电子邮件正文。我个人还没有尝试过,但我相信它一定会奏效。祝你好运。

据我所知,不幸的是,无法使用
Desktop.mail(URI)
指定任何附件。 我试过亚历克斯的建议。如果由于URI中字符数的限制,文件太大,则无法使用该方法

然而,尽管它只在x86平台上工作,但仍然可以使用

使其工作的最终方法是使用,但它强制您创建自己的GUI并设置SMTP服务器配置。。这对用户来说并不友好


如果有人提出其他建议,我很乐意知道。

请参阅
DatatypeConverter.printBase64Binary(byte[])
了解J2SE方法进行转换。有人使用过这个方法吗?如果您能提供一些示例代码的链接,这将非常有帮助:)我正在使用Win7,希望启动MS Outlook。谢谢