0

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

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

例如:

Dear <<name>>,

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

Sincerely,
<<sender>>

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

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

4

2 回答 2

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

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

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

编辑:

如果您想打开 Outlook,则需要使用 Desktop.mail() API。您可以通过构建适当的 URI 并将其传递给 Desktop.mail() 来预先填充 Outlook 发送电子邮件窗口中的收件人、抄送、密件抄送、主题和正文字段

 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 使用分号..

于 2011-10-30T11:46:25.833 回答
0

使用 JavaMail 库发送邮件。如果您搜索“JavaMail 示例”,您会发现很多示例,其中包括:通过 Gmail SMTP 发送电子邮件示例。关于占位符,我会简单地使用 String.replace 函数。

于 2011-10-30T11:41:35.203 回答