【发布时间】:2014-08-09 14:57:11
【问题描述】:
我正在从表中的列中提取收件人列表,并且正在运行存储过程 sp_send_dbmail 以将电子邮件发送给这些收件人。
总共有大约 200 个收件人。
具有讽刺意味的是,即使我收到的邮件是邮件排队,但只有少数邮件被送达。数据库邮件配置正确,我正在使用Public 数据库配置文件。
当我检查msdb.dbo.sysmail_mailitems 表时,sent_status 列中的预期值对于接收邮件的收件人来说是 1,而对于其他收件人来说,该值是 0 或 2。
我完全确定收件人列表是 100% 正确的。我们有任何解决方法来解决这个问题吗?
下面是我正在运行的代码:
CREATE procedure [dbo].[sp_dataRefreshNotification]
AS
BEGIN
DECLARE @ToMail VARCHAR(20)
DECLARE @Body1 VARCHAR(MAX) =
'Dear User,
Data has been refreshed.
Regards,
IT Support Team
Note: This is an auto generated e-mail, please do not reply this mail. '
SELECT DISTINCT RecipientAddress FROM dbo.RecipientAddressList
OPEN notification_cursor
FETCH NEXT FROM notification_cursor
INTO @ToMail
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@profile_name ='aaaa',
@Recipients = @Tomail,
@Subject = 'Required Data',
@Body = @Body1
FETCH NEXT FROM notification_cursor
INTO @ToMail
END
CLOSE notification_cursor
DEALLOCATE notification_cursor
END
【问题讨论】:
-
你能展示一些你用来发送电子邮件的代码吗?
-
@M.Ali:我已经在我的问题中添加了代码。
-
运行 SQL Server Management Studio 并查看数据库邮件组件的日志 - 您拥有有关发送邮件的实际问题的所有信息。让我们知道那里有什么错误。
标签: sql sql-server sql-server-2008 tsql