使用sp_send_dbmail发送邮件时内部HTML样式未生效如何解决?
解决sp_send_dbmail发送HTML邮件内部样式不生效的问题
问题原因
多数邮件客户端(包括不少企业内部邮件系统)对HTML头部<head>中的<style>内嵌样式支持度很低,即便设置了@body_format='HTML',也可能无法解析这类样式,而更认可直接写在元素上的内联样式。
解决方案
把样式直接内联到对应的HTML元素的style属性中,这是邮件HTML样式兼容最稳妥的方式。修改后的代码如下:
declare @body nvarchar (max) declare @subj nvarchar(300) declare @clientname nvarchar(100)='myClient' declare @DataCurrentAsOf nvarchar(100)='01/01/01' SET @body =' <!DOCTYPE html> <html lang="en"> <body style="background-color: lightgrey;"> Please do not reply to this email.<br><br> </body> </html> ' --SET @body = @body + @xml +'</table></body></html>' Select @body Set @subj='Daily Counts' ------------------------------------------------------------------------------ Execute msdb.dbo.sp_send_dbmail @profile_name='myProfile', @recipients = 'me@me.com', @body_format = 'HTML', @body=@body, @subject=@subj
补充说明
如果需要给多个元素设置样式,同样逐个添加内联样式即可。若样式较多,也可以尝试将<style>标签放到<body>标签内部(部分客户端支持这种写法),但内联样式的兼容性始终是最好的。
内容的提问来源于stack exchange,提问作者PowerUser
相关产品推荐
相关产品推荐

