如何在msdb.dbo.sp_send_dbmail发送的电子邮件中嵌入图像?

时间:2009-10-15 08:20:41

标签: sql-server

我正在尝试向存储在SQL Server数据库中的联系人发送电子邮件。电子邮件包含图像。

EXEC msdb.dbo.sp&#95;send&#95;dbmail<br/>
   @recipients = 'name@address.com;',<br/>
   @subject = 'Sending Mail from SQL Server Test',<br/>
   @file_attachments = 'C:\inetpub\wwwroot\pagerror.gif',<br/>
   @body=N'&lt;img src="pagerror.gif" /&gt;',<br/> 
   @body_format = 'HTML';

但是一些电子邮件提供商(如雅虎)将发送的邮件视为垃圾邮件。我需要的是创建&lt; img&gt;标记类似于Outlook生成的标记:

&lt; img width = 482 height = 675 id =“_ x0000_i1025”src =“cid:image002.png@01CA4B5E.28AE48C0”&gt;

有了这个标签,雅虎不会将其视为垃圾邮件。如何处理图像,以便我可以像上面那样引用它?

我不是高级SQL Server程序员。我真的需要一个循序渐进的教程。请帮忙......

1 个答案:

答案 0 :(得分:0)

如果图片位于另一台服务器上,而您只是在邮件中引用该图片,请按照Jonathans的评论。

如果发送图片作为附件很好,你可以使用这样的东西......

EXEC msdb.dbo.sp_send_dbmail
    @recipients = 'name@address.com;',
    @subject = 'Sending Mail from SQL Server Test',
    @body_format = 'HTML',
    @query = 'SELECT imageField FROM Person WHERE ID = 12345',
    @execute_query_database = 'YourDatabase',
    @attach_query_result_as_file = 1,
    @query_attachment_filename = 'imageOfAPerson.jpg'

如果没有任何类型对您有益,您可以使用SQL Server的CLR功能并开发自己的代码来发送任意电子邮件。我相信你不知道怎么做,它可能相当复杂,但事实就是如此。没有简单的方法。