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

时间:2010-03-09 14:51:01

标签: sql-server tsql sql-server-2008 email email-integration

我对数据库比较陌生,所以如果我的查询听起来微不足道,请原谅我。 我需要向特定表中列出的所有联系人发送批量电子邮件。电子邮件的正文存储在.doc文件中,该文件以亲爱的_______先生开头。 SQL服务器将读取此文件,在空白处附加联系人的姓氏,并将其发送到该姓氏的相应电子邮件地址。有关如何进行此操作的任何想法?

任何见解,建议和提示都将不胜感激。

谢谢!

4 个答案:

答案 0 :(得分:6)

数据库=数据库。存储数据。请不要让你的可怜数据库发送数以千计的电子邮件。这不是为它做的。

编写执行此操作的应用程序。多线程。使用数据库中的数据并在那里存储结果/状态。

答案 1 :(得分: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文件,因此您可能必须使用SQl Server作为数据源将其作为Word的邮件合并运行:

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

答案 2 :(得分:4)

SQL Server不是邮件服务器。

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

答案 3 :(得分:2)

我过去曾使用过SQLAnswersMail产品用于SQL Server 2000,它提供了许多功能,例如邮件合并。

是的,SQL Server是一个数据库,但我发现它是托管数据和安排作业以生成电子邮件的理想选择(我们没有在SQL Server本身上运行邮件中继)。它还可以很好地将自定义查询结果发送给收件人。

我不确定SQL Server 2005引入的所有改进的电子邮件处理是否已经废弃.SQL Server 2000无法使用旧的基于MAPI的配置文件处理的主要要求是能够从多个发送电子邮件地址。