Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java创建电子邮件_Java_Email_Outlook - Fatal编程技术网

用Java创建电子邮件

用Java创建电子邮件,java,email,outlook,Java,Email,Outlook,我想用Java“创建”一封电子邮件 我的意思是: 根据我已有的信息,我想在Microsoft Outlook中打开一封电子邮件,其中的“收件人”、“抄送”、“主题”、“邮件正文”和“附件”字段已填充(现在全部存储为字符串,附件目录也存储为字符串) 邮件需要在Outlook中打开,以便用户验证内容,并提供添加更多CC的机会,对主题和邮件正文进行轻微调整 从我收集的信息来看,实现这一点的“最佳”方法似乎是首先在磁盘上创建一个Outlook可以读取的文件,其中包含我的邮件,然后使用类似于下面代码的东西

我想用Java“创建”一封电子邮件

我的意思是:

根据我已有的信息,我想在Microsoft Outlook中打开一封电子邮件,其中的“收件人”、“抄送”、“主题”、“邮件正文”和“附件”字段已填充(现在全部存储为字符串,附件目录也存储为字符串)

邮件需要在Outlook中打开,以便用户验证内容,并提供添加更多CC的机会,对主题和邮件正文进行轻微调整

从我收集的信息来看,实现这一点的“最佳”方法似乎是首先在磁盘上创建一个Outlook可以读取的文件,其中包含我的邮件,然后使用类似于下面代码的东西使用Outlook打开它

Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("OUTLOOK Directory + CMD switches for opening files");
  • 理想情况下,我希望使用一个简单的框架来简单地创建这样一个文件,使用我已经为不同字段提供的字符串(或者通过一个非简单的框架实现相同的功能)

  • 如果没有实现上述目标的“好”方法,我会选择将附件文件附加到给定的Outlook模板(.oft)文件的方法

  • (3.我将采用当前的解决方案,只需在Outlook中打开模板,在资源管理器中打开附件,并提示用户将文件拖到Outlook中。)

    我已经在ApachePOI中查看了HSMF(我的程序的其他部分是ApachePOI),但在这一点上它似乎是实验性的,并且我找不到太多关于它的文档

    有人对在哪里查找有什么建议吗?

    将API与引用合法字符的构造函数一起使用。此示例代码将打开默认邮件客户端,并填充邮件头

    public static void main(String[] args) throws Exception {
        URI msg = new URI("mailto", "you@foo.com&cc=team@bar.com&subject=How to create email in Java?body=Use JavaMail.", (String) null);
        Desktop.getDesktop().mail(msg);
    }
    

    唯一的限制是O/S可以处理的URI的长度存在差异。在windows上,“start”命令还可以理解中解释的语法

    Java邮件API可能是一个很好的起点。看看JavaMail的+1。组装一个mimessage,然后用writeTo(OutputStream)方法将其写入一个*.eml(或*.msg)文件。谢谢你,我看了一下Javamail,但是在几个小时没有找到创建一个工作解决方案的方法之后,我决定选择3。那就足够了。