一些CSS样式在使用javax邮件作为邮件时未在html中应用

Viv*_*han 5 html java jakarta-mail javax.mail

我正在尝试使用Javax邮件API将格式化的html作为邮件发送.使用的邮件工具代码是

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);
Run Code Online (Sandbox Code Playgroud)

并且生成的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>    
Run Code Online (Sandbox Code Playgroud)

我希望这能显示内联,而不是上下.我也在小提琴中测试了生成的html.按预期工作.但是,在邮件中,我将它作为正常列表.为什么内嵌显示无法在电子邮件中使用?

需要帮忙

ste*_*oss 5

电子邮件客户端通常不遵循标准。诸如gMail之类的某些客户端甚至会忽略-block中的CSS声明<style>CampaignMonitor在如何创建大多数客户端支持的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>
Run Code Online (Sandbox Code Playgroud)

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