从SQL Server 2008发送批量电子邮件

4
我对数据库相对较新,如果我的查询听起来很琐碎,请原谅我。 我需要向特定表中列出的所有联系人发送批量电子邮件。电子邮件正文存储在以"尊敬的_______先生/女士"开头的.doc文件中。SQL服务器将读取此文件,在空格处附加联系人的姓氏,并将其发送到该姓氏对应的电子邮件地址。如何继续进行? 如有任何见解、建议或技巧,将不胜感激。 谢谢!
4个回答

7

数据库 = 数据库。存储数据。请不要让您的可怜数据库发送数千封电子邮件。这不是它的用途。

编写一个应用程序来完成这个任务。多线程。使用数据库中的数据并将结果/状态存储在其中。


4
我不建议使用数据库发送垃圾邮件,但是你可以通过数据库发送电子邮件,使用以下命令:EXEC msdb.dbo.sp_send_dbmail ... 我不确定这会对实际数据库性能(SELECT/INSERT/UPDATE/DELETE)产生何种影响,但这不是我的决定。详情请参见http://technet.microsoft.com/en-us/library/ms190307.aspx
sp_send_dbmail [ [ @profile_name = ] 'profile_name' ]
    [ , [ @recipients = ] 'recipients [ ; ...n ]' ]
    [ , [ @copy_recipients = ] 'copy_recipient [ ; ...n ]' ]
    [ , [ @blind_copy_recipients = ] 'blind_copy_recipient [ ; ...n ]' ]
    [ , [ @subject = ] 'subject' ] 
    [ , [ @body = ] 'body' ] 
    [ , [ @body_format = ] 'body_format' ]
    [ , [ @importance = ] 'importance' ]
    [ , [ @sensitivity = ] 'sensitivity' ]
    [ , [ @file_attachments = ] 'attachment [ ; ...n ]' ]
    [ , [ @query = ] 'query' ]
    [ , [ @execute_query_database = ] 'execute_query_database' ]
    [ , [ @attach_query_result_as_file = ] attach_query_result_as_file ]
    [ , [ @query_attachment_filename = ] query_attachment_filename ]
    [ , [ @query_result_header = ] query_result_header ]
    [ , [ @query_result_width = ] query_result_width ]
    [ , [ @query_result_separator = ] 'query_result_separator' ]
    [ , [ @exclude_query_output = ] exclude_query_output ]
    [ , [ @append_query_error = ] append_query_error ]
    [ , [ @query_no_truncate = ] query_no_truncate ]
    [ , [ @mailitem_id = ] mailitem_id ] [ OUTPUT ]

我不确定如何从SQL更改.DOC文件,所以您可能需要在Word中使用邮件合并,将SQL Server作为数据源运行:

http://msdn.microsoft.com/en-us/library/aa140183%28office.10%29.aspx


4

SQL Server不是邮件服务器。

如果要发送大量邮件(如有数千封),您可以导出信息并使用外部提供程序发送,或编写一个应用程序来读取数据,替换占位符的值,并使用公司的SMTP服务器发送邮件。这将需要大约200行C#.NET代码,因此非常简单易懂。


2
我以前使用过SQL Server 2000的SQLAnswersMail产品,它提供了很多功能,如邮件合并。是的,SQL Server是一个数据库,但我发现它非常适合托管数据和调度任务来生成电子邮件(我们没有在SQL Server本身上运行邮件中继)。它还可以很好地将自定义查询结果发送给收件人。我不确定它是否已经被SQL Server 2005引入的所有改进的电子邮件处理所取代。SQL Server 2000无法处理旧的基于MAPI的配置文件的主要要求是能够从多个电子邮件地址发送邮件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接