当我使用发送邮件任务时,SSIS 包显示错误

Posted

技术标签:

【中文标题】当我使用发送邮件任务时,SSIS 包显示错误【英文标题】:SSIS package displays an error when I use send mail task 【发布时间】:2014-08-29 09:23:48 【问题描述】:

我有一个包,其中包含一个使用 SEND MAIL 任务的任务,但它执行良好,直到它接近发送邮件任务并显示错误。这是[发送邮件任务]错误:发生错误并显示以下错误消息:“语法错误,命令无法识别。服务器响应为:5.0.0 您的电子邮件系统必须在发送邮件之前进行身份验证

【问题讨论】:

请出示代码。 嗨 Shree,因此没有代码,因为它只是发送邮件任务,ididnt 必须编写任何代码。只是发送电子邮件和 smtp 服务器名称 您使用的是什么电子邮件服务器和身份验证协议? 如果是gmail,则无法使用发送邮件任务,需要创建脚本任务***.com/questions/16058911/ssis-send-mail-task-error 使用外部 SMTP 服务器没有本地 【参考方案1】:

您尝试使用的邮件服务器在接收邮件之前需要进行身份验证。

SSIS 的 SMTP 连接管理器仅限于支持 Windows 身份验证。如果您在网络内部使用基于 Windows 的邮件服务器(例如,Microsoft Exchange Server),这种形式的身份验证可能会起作用。但是,听起来您的服务器需要使用用户名和密码进行身份验证。 SSIS 不支持此功能。

可能适用于您的情况的选项:

请您的邮件服务器运营商将您的 SSIS 服务器的 IP 地址列入白名单,以便邮件服务器在从该 IP 接收邮件时不需要身份验证。 此选项允许您使用 SSIS 的内置发送邮件任务。 在您的 SSIS 服务器上设置 SMTP 中继服务器。将中继配置为仅接受本地连接(防止其他计算机通过您的系统发送垃圾邮件)并将所有邮件转发到您要使用的外部 SMTP 服务器。 (当然,中继需要支持与远程 SMTP 服务器的身份验证。)此选项还允许您继续使用 SSIS 的内置发送邮件任务。 正如@Justin 提到的,创建一个执行发送的脚本任务。您可以使用 .Net 的 SmtpClient 类(supports username/password authentication)来发送消息。 使用第三方 SSIS 组件。我没有尝试过,所以无法提出建议,但搜索“ssis smtp 组件”会出现选项。 如果您有权访问 Microsoft SQL Server,则使用调用 sp_send_dbmail 的执行 SQL 任务可能会起作用。 SQL Server 的数据库邮件 supports 基本身份验证和 SSL。

【讨论】:

嗨,本,感谢您提供的所有信息。我已经使用脚本任务代替了发送邮件任务。它现在已经解决了这个问题。我非常感谢您在这个问题上的知识分享。非常感谢

以上是关于当我使用发送邮件任务时,SSIS 包显示错误的主要内容,如果未能解决你的问题,请参考以下文章

通过 Windows 任务计划程序调用 SSIS 包时,发送邮件任务在 SSIS 中不起作用

SQL Server 代理作业和 SSIS 项目

SSIS 脚本任务引发死锁错误

使用 Visual Studio 2010 的 SSIS 发送邮件任务脚本

SSIS 脚本任务抛出未设置为对象实例的对象引用

在SSIS中使用Renci时如何避免崩溃