0

我用发送邮件任务创建了 SSIS 包

当我在Visual Studio 的 SQL Server 数据工具上运行 SSIS 包时,它可以工作(发送一封带有多个附件的电子邮件)

但是当我通过SQL Server Agent -> Job运行相同的包时,它不会发送电子邮件。

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

安全 -> 凭据 -> 添加的用户名下

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

我已经创建了 SQL Server 代理 -> 作业

在此处输入图像描述

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

4

1 回答 1

1

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

我通过在连接字符串中传递 SMTP 帐户用户和密码凭据来解决它。就我而言,我使用的是 Googlemail SMTP - 使用您的 SMTP 服务器使用的任何用户和密码参数。将粗体部分替换为您的 SMTP 服务器、用户名和密码

SSIS项目中的步骤:-

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

  1. 使用选择 SMTP 作为类型的 New Connection... 选项创建连接。
  2. 无需任何连接设置即可保存。给它任何你想要的名字。
  3. 右键单击连接并选择参数化...
  4. 选择属性 = 连接字符串
  5. 选择创建新参数(例如 SMTPConnectionManager_ConnectionString)
  6. 将值设置为连接字符串(例如SmtpServer=aspmx.l.google.com; port=25 ; UseWindowsAuthentication=False;EnableSsl=False; user=user@gmail.com ; password=password123
  7. 为您的部署方法(包或项目)设置适当级别的范围。
  8. 单击确定。

SSIS 的美妙之处在于大多数属性都可以用表达式参数化/替换,以使其做你想做的事。

于 2017-10-03T11:29:26.187 回答