Javamail并添加文本链接

时间:2011-10-13 21:29:08

标签: java javamail

我正在使用Javamail。在MimeMessage.setText中,我必须包含将文本编码为URL的代码。出于以下目的。

BodyPart messageBodyPart = new MimeBodyPart();

messageBodyPart.setText("Test\n" + text +"\nVisit Test.com");`

在此我需要将Test.com嵌入为URL。是否有标签或通配符可以做到这一点?感谢。

基本上我宁愿避免在javamail中使用html并使用以下内容。

Test.com

2 个答案:

答案 0 :(得分:8)

如果您希望链接在邮件中可点击,则应将邮件作为HTML发送。

为此,您应该尝试创建HTML MIME邮件:

InternetHeaders headers = new InternetHeaders();
headers.addHeader("Content-type", "text/html; charset=UTF-8");
String html = "Test\n" + text + "\n<a href='http://test.com'>Test.com</a>";
MimeBodyPart body = new MimeBodyPart(headers, html.getBytes("UTF-8"));

编辑:

发送HTML邮件时也可以使用setText:

String html = "Test\n" + text + "\n<a href='http://test.com'>Test.com</a>";
messageBodyPart.setText(html, "UTF-8", "html");

请参阅the API for more details

答案 1 :(得分:1)

要实现这一目标,还需要做几件事。

  1. 将链接发送为html
  2. 将内容类型设置为text/html
  3. String text = "Test\n" + text +"\nVisit <a href="http://test.com">Test.com</a>"; messageBodyPart.setContent(text, "text/html");

    来自JavaMail API FAQ

      

    问:如何发送HTML邮件?   答:分发版中包含许多演示程序,用于演示如何发送HTML邮件。如果要发送包含HTML而不是纯文本的简单消息,请参阅演示目录中的 sendhtml.java 程序。如果要将HTML文件作为附件发送,请参阅 sendfile.java 示例,该示例显示如何将任何文件作为附件发送。