【问题标题】:SSIS Send Mail Task FailedSSIS 发送邮件任务失败
【发布时间】:2018-09-11 08:04:50
【问题描述】:

以下是我在执行包含发送邮件任务的简单包时遇到的错误。我已经使用 server-smtp.office365.com 配置了 SMTP 连接管理器,并检查了 windows 身份验证和 ssl 选项。

谢谢

错误:发送邮件任务时出现 0xC002F304,发送邮件任务:发生错误 带有以下错误消息:“SMTP 服务器需要安全 连接或客户端未通过身份验证。服务器响应 是:5.7.57 SMTP;客户端未通过身份验证以发送匿名邮件 在来自 [BMXPR01CA0031.INDPRD01.PROD.OUTLOOK.COM] 的邮件期间。

【问题讨论】:

    标签: ssis


    【解决方案1】:

    这是一个已知问题。查看this msdn link。它在回答中陈述了以下内容:

    SSIS 中的 SMTP 任务仅支持 Windows 身份验证和 端口号不能更改。对于使用非 Windows 的 SMTP 服务器 认证,我们可以使用Script Task中的SmtpClient类来发送 电子邮件

    这就是为什么通过 office365 发送电子邮件失败的原因。

    为了使用 office365,您可以寻找与 SSIS 集成的第三方插件,也可以使用script task,如下所示:

    using System.Net.Mail;
    using System.Net;
    .
    .
    .
    public void Main()
    {
     MailMessage mail = new MailMessage("<from email address>", "<to email address>");
     mail.Body = "ssis sample email body";
     mail.Subject = "ssis sample email subject";
    
     //mail.Attachments.Add(new Attachment(AttachmentDiscardContratti));
     //mail.Attachments.Add(new Attachment(AttachmentDiscardOrdini));
    
       SmtpClient client = new SmtpClient("smtp.office365.com", 587);
       client.EnableSsl = true;
       client.UseDefaultCredentials = false;
       client.Credentials = new NetworkCredential("<login email>", "<login password>");
       client.Send(mail);
    
       Dts.TaskResult = (int)ScriptResults.Success;
    }
    

    ps:交换,因为我不确定哪个先出现。

    另一个代码示例可用in this SO answer(未经我测试)

    【讨论】:

      【解决方案2】:

      这可以通过执行 sql 任务轻松实现。首先创建一个存储过程并在新创建的过程中执行 sp_send_dbmail。这个sp需要很多参数..从ssis传递这些参数的值,你会很好。请在谷歌上搜索更多关于此程序的信息。你甚至可以在这个过程中发送附件

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多