当使用javax邮件将其作为邮件时,某些CSS样式不应用于html

当使用javax邮件将其作为邮件时,某些CSS样式不应用于html,java,html,jakarta-mail,Java,Html,Jakarta Mail,我正在尝试使用javaxmailapi将格式化的html作为邮件发送。 使用的邮件util代码是 Message message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.setHeader("Auto-Submitted", "auto-generated"); message.setReplyTo(InternetAddress.parse(commaSeperatedRep

我正在尝试使用javaxmailapi将格式化的html作为邮件发送。 使用的邮件util代码是

Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setHeader("Auto-Submitted", "auto-generated");
message.setReplyTo(InternetAddress.parse(commaSeperatedReplyTo));

Multipart multipart = new MimeMultipart();
    if (body != null) {
       MimeBodyPart messageBodyPart = new MimeBodyPart();
       messageBodyPart.setContent(body, "text/html;charset=utf-8");
       multipart.addBodyPart(messageBodyPart);

    }
message.setContent(multipart);
生成的html主体是

<html>
    <body>
        <style type="text/css">

            #content ul li{
                display:inline !important;
                float:left;
                padding: 7px;
                margin-right: 4px;
                font-style: italic;

            }
        </style>

        <font face ="Arial" size=4> <U>DESCRIPTION</U>:Test </font><br/><br/>                       
            <div id="content">              
                <ul>
                        <li> component_id</li>
                        <li> component_type_id</li>
                        <li> name</li>
                        <li> update_user</li>
                        <li> update</li>
                        <li> key</li>
                        <li> field</li>
                </ul>                       

            </div>  
    </body>
 </html>    

#内容简介{
显示:内联!重要;
浮动:左;
填充:7px;
保证金权利:4px;
字体:斜体;
}
描述:测试

  • 组件id
  • 组件类型id
  • 名字
  • 更新用户
  • 更新
  • 钥匙
我希望这是显示内联,而不是向上和向下。我还用fiddle测试了生成的html。按预期工作。但是,在邮件中,我得到了它作为正常的名单。为什么内联显示在电子邮件中不起作用


需要帮助

电子邮件客户端通常不遵循标准。像gMail这样的一些客户端甚至在
-块中忽略CSS声明。有一些关于如何创建大多数客户端支持的HTML电子邮件的优秀资源

您应该将布局转换为以下内容(使用表格!):


描述:测试


组件id 组件类型id 名称 更新用户 更新 钥匙 领域

然后可以使用内联CSS设置表格/单元格的样式。

如何使用CSS代码设置内容方法(); 例如:

String css=“body{background repeat:no repeat;}”

MimeBodyPart messageBodyPart=新的MimeBodyPart(); setContent(css,“text/html”)


//此css代码不会影响邮件正文。

这可能与您的代码无关,但与您使用的邮件客户端不支持此代码这一事实有关。由于斜体样式,文本显示为斜体applied@MrThys那怎么办呢?我需要它,有什么解决方法吗?我的电子邮件客户端是:microsoft Outlook 2010根据我的经验,要知道您的邮件在所有客户端中都能正确显示,最好的方法是使用老式的HTML(表格)和内联样式。是的。。完成了这个。谢谢你的回复。救了我无用的努力:)你好。欢迎来到堆栈溢出。请环顾四周,拿着这本书,通读一遍。你也可以阅读有关。
<html>
    <body>
        <font face="Arial" size=4><U>DESCRIPTION</U>:Test</font>
        <br/>
        <br/>
        <table>
            <tr>
                <td>component_id</td>
                <td>component_type_id</td>
                <td>name</td>
                <td>update_user</td>
                <td>update</td>
                <td>key</td>
                <td>field</td>
            </tr>
        </table>
    </body>
</html>