jsf 2.0 我们使用了 text/html 但它显示为纯 javamail

Posted

技术标签:

【中文标题】jsf 2.0 我们使用了 text/html 但它显示为纯 javamail【英文标题】:jsf 2.0 we used text/html but it is displaying plain for javamail 【发布时间】:2012-08-15 14:06:28 【问题描述】:

我在我的 jsf2.0 应用程序中使用 mail1.4.3 jar,我正在尝试在请求新用户时发送电子邮件,如果我们发送邮件,即使我使用 text/html 作为邮件和我的代码,邮件内容也会显示为普通内容是

MimeMessage 消息 = 新的 MimeMessage(session);

     // Set From: header field of the header.
     message.setFrom(new InternetAddress(from));

     // Set To: header field of the header.
     message.addRecipient(Message.RecipientType.TO,
                              new InternetAddress(to));
     StringBuilder bld = new StringBuilder();
        bld.append("<h2>");
        bld.append("New User Request");
        bld.append(" for <FONT style='color:#4649FE;'> " + "TALON");
        bld.append("</FONT></h2><br/>");
        bld.append("<b>Requested By :");
        bld.append("<FONT style='color:#4649FE;'>" + "Y.Sanjeeva Reddygggggggggg"
                + "</FONT></b><br/>");
        bld.append("<b>Requested on :");
        Date dt = new Date();
        Calendar cel = new GregorianCalendar();
        cel.setTime(dt);
        SimpleDateFormat smpl = new SimpleDateFormat();
        bld.append(smpl.format(cel.getTime()));
        bld.append("<br/>");
        bld.append("<b>User Name :<FONT style='color:#4649FE;'>"
                + "Sanjiv" + "</FONT></b><br/>");
            bld.append("<b>Password :<FONT style='color:#4649FE;'>"
                    + "Sanjiv" + "</FONT></b><br/>");
        bld.append("<FONT style='color:#4649FE;'>");
     message.setSubject("This is the Subject Line!");
     message.setContent(bld.toString(),
                        "text/html" );
     Transport.send(message);
     System.out.println("Sent message successfully....");

谁能帮帮我

谢谢, 桑吉夫

【问题讨论】:

顺便问一下,有哪些事实可以说明当前 JDK 中没有使用集成邮件 API? 【参考方案1】:

我将您的源代码与我在工作中的工作代码进行了比较,我看不出有任何区别。 当我查看 Internet 时,我发现一个使用 JavaMail 的德国人guide。根据这本书试试这个:

使用message.setContent(bld.toString()); 而不是message.setContent(bld.toString(),"text/html" );

如果没有帮助,请尝试 this 。然后它不再起作用,从您的服务器检查您的属性。这些也会影响以正确格式接收电子邮件。

【讨论】:

是的,我使用过 message.setContent(bld.toString(),"text/html" );然后它也不起作用,如果我运行上面的程序,正常的 java 邮件内容显示正常,如果我通过 xhtml 调用它说发送邮件,那么只有内容没有正确显示 您的意思是“html”还是“xhtml”?【参考方案2】:

你所说的“显示平原”到底是什么意思?它是否显示所有 html 标记?还是显示没有标记的纯文本?如果是后者,则问题出在您的邮件服务器或邮件阅读器,其中之一是将 html 文本转换为纯文本。

【讨论】:

我收到这样的邮件:

TALON的新用户请求请求人:Y.Sanjeeva Reddygggggggggg请求时间:2012 年 8 月 20 日下午 6:01用户名:Sanjiv密码:Sanjiv

我正在设置主题 message.setSubject("这是主题行!");但是在邮件中,主题是空的,即没有主题,并且地址是未公开的ID 您使用的是什么版本的 JavaMail?尝试在 Transport.send(message) 之前添加 message.saveChanges()。 我在 Transport.send(message) 之前使用 message.saveChanges() :( 但不起作用,实际上如果我通过 java 发送邮件,如 MailClass mailClass = new MailClass(); mailClass.sendMails() ; 它工作正常,当我通过 .xhtml 页面使用相同的方法时,如 我不知道。 JavaMail FAQ 有一些调试技巧;试试看。

以上是关于jsf 2.0 我们使用了 text/html 但它显示为纯 javamail的主要内容,如果未能解决你的问题,请参考以下文章

jsf 1.2和jsf 2.0之间的区别

如何在 JSF 2.0 中使用表单重新呈现页面的一部分?

JSF 2.0 每页生成多个请求

RichFaces 3.3.3 和 JSF 2.0 工作示例

将 Eclipse Indigo 用于 JSF 2.0 组件

jsf 2.0 中的不可见评论? [复制]