SSIS发送邮件任务不通过SQL Server代理作业运行

时间:2016-11-08 16:05:16

标签: sql-server email ssis sendmail sql-server-job

我使用发送邮件任务

创建了SSIS包

Visual Studio的SQL Server数据工具

上运行SSIS包时,它可以正常工作(发送一封包含多个附件的电子邮件)

但是当我通过 SQL Server代理 - >运行相同的包时工作它不会发送电子邮件。

在我在下面创建的SQL Server中,

安全性 - >凭证 - >添加了用户名

SQL Server代理 - >下代理 - > SSIS包执行 - >添加了凭据名称

我创建了SQL Server代理 - >工作

enter image description here

仍然是SQL Server代理作业(SQL Server 2014)无法发送电子邮件。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题(可以在VS中运行,但在SQL中作为作业运行时却没有)。作业运行时,它使用SQL代理作业运行的任何Windows凭据。 它失败了,即使我使用相同的Windows帐户来成功运行VS项目作为代理帐户来运行SQL作业。

我通过传递SMTP帐户用户&连接字符串中的密码凭据。在我的情况下,我使用谷歌邮件SMTP - 使用任何用户和放大器SMTP服务器使用的密码参数。用SMTP服务器,用户名和密码替换粗体位。密码

SSIS项目的步骤: -

使用参数化的ConnectionString属性创建一个SMTP连接管理器,其中包含一个包含smtp用户和密码的字符串。

  1. 使用New Connection ...选项创建连接,选择SMTP作为类型。
  2. 无需任何连接设置即可保存。给它任何你想要的名字。
  3. 右键单击连接,然后选择参数化...
  4. 选择Property = ConnectionString
  5. 选择创建新参数(例如SMTPConnectionManager_ConnectionString)
  6. 将值设置为连接字符串(例如 SmtpServer = aspmx.l.google.com; port = 25 ; UseWindowsAuthentication = False; EnableSsl = False; < em> user=user@gmail.com ; 密码= password123
  7. 为您的部署方法(包或项目)设置适当级别的范围。
  8. 单击“确定”。
  9. SSIS的美妙之处在于,大多数属性都可以通过表达式进行参数化/替换,以使其达到您想要的效果。