C#发送的HTML邮件头部格式在Outlook中丢失的问题求助
用C#发送HTML邮件时Outlook头部格式丢失问题
我用C#发送HTML邮件,Logo和图标能正常显示,但邮件头部的格式在Outlook中会丢失:
- 网页里头部显示正常:图标与两行文字横向对齐,背景为深蓝色,文字分别为黄色和白色;
- 但在Outlook中,城市名称和公司名称都会跑到图标下方,完全失去横向布局效果;
- 尝试过修改flex方向为row、调整Outlook缩放至100%,都没有效果;
- 改用table标签重构头部后,图标和文字之间又出现了巨大的不必要间距。
原HTML头部结构
<div class="container"> <div class="logo"> <img src="Images/delete.png" alt="RAC" width="80" height="80" /> </div> <div class="names"> <div class="name1">This is City Name</div> <div class="name2">This is company Name</div> </div> </div>
对应CSS样式
<style> .container { display: flex; align-items: center; padding: 10px; background-color: #335970; width:100%; } .logo { margin-right: 10px; } .names { display: flex; flex-direction: column; } .name1 { font-size: 25px; color: #e9c46a; } .name2 { font-size: 25px; color: white; } </style>
C#发送邮件的核心代码
client.Credentials = new NetworkCredential("test", EmailPass); client.Port = 200; client.EnableSsl = true; client.Host = "smtp.office365.com"; client.DeliveryMethod = SmtpDeliveryMethod.Network; MailMessage mail = new MailMessage(); mail.IsBodyHtml = true; mail.From = test; mail.To.Add(new MailAddress("t@t.com")); mail.Subject = "test"; using(StreamReader reader = new StreamReader(Server.MapPath("~/EmailTemplate.html"))) { body = reader.ReadToEnd(); } mail.Body = body; client.Send(mail);
尝试用table重构的头部代码
<table style="background-color: #335970;width:100%;padding:10px"> <tr> <td rowspan="3"> <img src="Images/delete.png" height="80" width="80" /> </td> </tr> <tr> <td class="name1">This is City Name</td> </tr> <tr> <td class="name2">This is company Name</td> </tr> </table>
我的核心疑问:为什么Outlook无法正确显示这种邮件格式?
内容的提问来源于stack exchange,提问作者rimi
相关产品推荐
相关产品推荐

