如何在msdb.dbo.sp_send_dbmail发送的电子邮件中嵌入图像?
问题描述:
我试图发送电子邮件给存储在SQL Server数据库中的联系人。电子邮件包含图像。如何在msdb.dbo.sp_send_dbmail发送的电子邮件中嵌入图像?
EXEC msdb.dbo.sp_send_dbmail<br/>
@recipients = '[email protected];',<br/>
@subject = 'Sending Mail from SQL Server Test',<br/>
@file_attachments = 'C:\inetpub\wwwroot\pagerror.gif',<br/>
@body=N'<img src="pagerror.gif" />',<br/>
@body_format = 'HTML';
但是一些电子邮件提供商(如雅虎)假定发送的邮件是垃圾邮件。我需要的是创造<IMG>标签像由Outlook生成的:
< IMG WIDTH = 482 HEIGHT = 675 ID = “_ x0000_i1025” SRC = “CID:[email protected]” >
使用此标签,Yahoo不会将其视为垃圾邮件。如何处理图像,以便像上面那样引用它?
我不是高级SQL Server程序员。我真的需要一步一步的教程。请帮助...
答
如果图片驻留在另一台服务器上,并且您只是在邮件中引用它,请按照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功能,并开发自己的一段代码发送任意电子邮件。我相信你不知道如何去做,它可能相当复杂,但事实就是这样。没有简单的方法。
有关其他信息,通过使用第一个命令,该图像未嵌入雅虎,但附加。我在电子邮件内容中看不到任何图像。 – Haris 2009-10-15 08:36:48
在某个地方在线托管图像,并使用src =“http://yourdomain.com/pagerror.gif”的在线地址,它将起作用。 – 2009-10-15 13:52:37