我遇到的问题是,通过Sql Server发送的电子邮件没有正确嵌入到某些邮件客户端 - 特别是在OSX上的gmail和Outlook 2013。 (PC上的Outlook 2013很好)
这是一个示例调用,它将演示我的环境中的问题:
declare @body varchar(4000)
set @body = '<head>
<title> Embedded Logo Example</title>
</head>
<body>
<table><tr><td valign="top" align="left">MyHeader</td></tr>
<tr><td valign="top" align="left"><img src="cid:logo.png" width="235" height="70" border="0" alt=""></td></tr>
</table>
</body>'
EXEC msdb.dbo.sp_send_dbmail
@profile_name='default',
@recipients='joe@email.com',
@subject = 'Test',
@body = @body,
@body_format = 'HTML',
@file_attachments = 'C:\Users\joe\Desktop\logo.png'
当我在Outlook 2013 for OSX和Windows中查看邮件来源时,我可以看到&#34; source&#34;每个邮件都不同 - 所以我知道客户端正在对文件做有趣的事情。有趣的是,当我将工作电子邮件从Windows转发到OSX时......它有效!我看了一下文件之间的差异,我可以看到电子邮件中有更多信息可以使用(如下图所示)...但是,我无法在sp_send_dbmail中看到设置内容类型的内容或附件的cid。
有谁知道我如何指定内容类型或cid,或者可以解决问题,以便它在两个集合中都有效?