2009-10-15 172 views
2

我试图发送电子邮件给存储在SQL Server数据库中的联系人。电子邮件包含图像。如何在msdb.dbo.sp_send_dbmail发送的电子邮件中嵌入图像?

EXEC msdb.dbo.sp&#95;send&#95;dbmail<br/> 
    @recipients = '[email protected];',<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'; 

但是一些电子邮件提供商(如雅虎)假定发送的邮件是垃圾邮件。我需要的是创造<IMG>标签像由Outlook生成的:

< IMG WIDTH = 482 HEIGHT = 675 ID = “_ x0000_i1025” SRC = “CID:[email protected]” >

使用此标签,Yahoo不会将其视为垃圾邮件。如何处理图像,以便像上面那样引用它?

我不是高级SQL Server程序员。我真的需要一步一步的教程。请帮助...

+0

有关其他信息,通过使用第一个命令,该图像未嵌入雅虎,但附加。我在电子邮件内容中看不到任何图像。 – Haris 2009-10-15 08:36:48

+0

在某个地方在线托管图像,并使用src =“http://yourdomain.com/pagerror.gif”的在线地址,它将起作用。 – 2009-10-15 13:52:37

回答

0

如果图片驻留在另一台服务器上,并且您只是在邮件中引用它,请按照Jonathans的评论。

如果发送图像以附件形式是好的,你可以使用这样的事情...

EXEC msdb.dbo.sp_send_dbmail 
    @recipients = '[email protected];', 
    @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功能,并开发自己的一段代码发送任意电子邮件。我相信你不知道如何去做,它可能相当复杂,但事实就是这样。没有简单的方法。

相关问题