无法使用脚本任务从SSIS发送邮件

本文关键字:SSIS 任务 脚本 | 更新日期: 2023-09-27 18:05:45

我在SSIS中创建了脚本任务,并编写了c#程序发送邮件。是这样的。

public void Main()
    {
        MailMessage mail = new MailMessage("from@email.com", "to@gmail.com", "subject", "body");
        SmtpClient client = new SmtpClient("smtp.office365.com", 587);
        client.Credentials = new NetworkCredential("from@email.com", "password!!!");
        client.EnableSsl = true;
        client.Send(mail);
        Dts.TaskResult = (int)ScriptResults.Success;
    }

当我试图运行程序时,它显示了以下异常:

Exception has been thrown by the target of an invocation.
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()

当我在c#控制台模式下运行此代码时,它工作得很好。

我尝试在SSIS中发送邮件任务,但它不工作。所以我使用了脚本任务。

对于如何解决这个问题有什么想法吗?

无法使用脚本任务从SSIS发送邮件

我终于找到解决办法了。

我这样修改了代码…

public void Main()
{
    MailMessage mail = new MailMessage("from@email.com", "to@gmail.com", "subject", "body");
    SmtpClient client = new SmtpClient("smtp.office365.com", 587);
    client.EnableSsl = true;
    client.UseDefaultCredentials = false;
    client.Credentials = new NetworkCredential("from@email.com", "password!!!");
    client.Send(mail);
    Dts.TaskResult = (int)ScriptResults.Success;
}

就可以了。:)