使用Java通过Outlook邮件合并发送电子邮件

时间:2011-10-30 10:04:49

标签: java email mailmerge

我的数据库中有一组联系人。我希望我的应用程序为我的客户构建自定义电子邮件模板。

我的客户可以设置自定义占位符,例如公司名称,地址:

例如:

Dear <<name>>,

This is to inform you that our <<company name>>, located in  <<address>> ...

Sincerely,
<<sender>>

设置模板后,我可以将其用作电子邮件的正文。然后从数据库中提取收件人。

我知道java.awt.Desktop包,它允许我创建一个MAIL URI并使用用户的默认电子邮件客户端打开它。问题是我如何将邮件合并纳入其中?你能指导一下现有的图书馆或解决方案吗?

2 个答案:

答案 0 :(得分:0)

使用JavaMail库发送邮件。如果您搜索“JavaMail示例”,您会发现大量示例:Sending email via Gmail SMTP example。关于占位符,我只需使用String.replace函数。

答案 1 :(得分:0)

  1. 您需要控制模板中变量的设置方式。我不认为你可以解析任意字符串,并找出其中是否有变量。因此,当用户添加变量时,请确保将程序将理解的变量插入到电子邮件正文中。多数民众赞成,但我认为我会将其添加为完整性。

  2. 您可以将电子邮件正文保存为速度模板,确保您添加了与速度模板语言兼容的变量。如果有正在设置的复杂模板,Velocity将比string.replace()更容易。如果它是一个简单的,那么String.replace()会做。 http://velocity.apache.org/

  3. 接下来使用java邮件库直接从您的java程序发送它,或者使用Desktop类启动该框的默认电子邮件客户端。

  4. 修改

    如果您想打开o​​utlook,那么您需要使用Desktop.mail()API。您可以通过构建适当的URI并将其传递给Desktop.mail()

    来预先填充outlook发送电子邮件窗口中的to,cc,bcc,subject和body字段。
     mailto:duke@sun.com?SUBJECT=Happy New Year!&BODY=Happy New Year, Duke!
    

    在这里查看更多信息: http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/

    对于多个收件人,使用逗号分隔电子邮件地址应该有效。如果没有,请尝试使用半结肠。 Outlook使用分号..