我是SSIS的新手。我在 SSIS 中的执行 SQL 任务正在运行的一个存储过程中执行sp_send_dbmail时遇到问题。主要问题是,即使我运行此SP的配置文件不存在,它也不会抛出任何错误并成功完成。我怀疑存在配置问题,但我无法诊断它。
我发现我的暂存服务器上未配置 SMTP。这可能是唯一的原因吗?即使是这样,它至少应该抛出一个错误,但在日志中我没有看到任何相同的错误消息。
另外,如果我直接通过SQL运行此SP,则会出现"配置文件不存在"错误。但是当我通过 SSIS(执行 sql 任务(运行相同的 SP 时,它就会成功执行。
关于此问题的任何指导都可以提供很大的帮助。
这就是我称呼sp_send_dbmail的方式。
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Stagging Trigger',
@recipients = 'myemailID@test.com',
@subject = 'this is the SP to send mail from SP'
sp_send_dbmail
只对邮件进行排队。不尝试传递,不验证电子邮件配置文件,无法引发您投诉的任何错误。
阅读此处如何检查排队的电子邮件的状态: 检查使用数据库邮件发送的电子邮件的状态:
USE msdb ;
GO
-- Show the subject, the time that the mail item row was last
-- modified, and the log information.
-- Join sysmail_faileditems to sysmail_event_log
-- on the mailitem_id column.
-- In the WHERE clause list items where danw was in the recipients,
-- copy_recipients, or blind_copy_recipients.
-- These are the items that would have been sent
-- to danw.
SELECT items.subject,
items.last_mod_date
,l.description FROM dbo.sysmail_faileditems as items
INNER JOIN dbo.sysmail_event_log AS l
ON items.mailitem_id = l.mailitem_id
WHERE items.recipients LIKE '%danw%'
OR items.copy_recipients LIKE '%danw%'
OR items.blind_copy_recipients LIKE '%danw%'
GO
有关该主题的更多文章:
- 数据库邮件故障疑难解答
- SQL Server 数据库邮件的完整疑难解答指南
您的错误在需要什么方面非常清楚。首先,创建一个配置文件并记下您将在向导中输入的所有值。本指南将帮助您正确创建配置文件。
一旦您确认已设置 dbmail 配置文件,就可以对其进行测试了。如果您无法通过存储的过程发送电子邮件,我想与 AD 管理员或负责设置电子邮件服务器的人员交谈。这是为了确保您可以匿名发送电子邮件并处理任何潜在的中继服务器问题。希望这有帮助。