SSIS脚本任务从电子邮件地址发送电子邮件

时间:2019-05-15 14:46:01

标签: c# ssis smtpclient script-task

我有一份SSIS工作。在脚本任务中,我正在发送电子邮件。长话短说,它有一个模板和许多其他有趣的东西。它工作正常,只是它是从PagerAlert发送的,而不是从我收到的指定电子邮件发送的。

SendMailFrom = alert@company.org;

注意:smtpServer是作为本地连接(即databaseName.xxx.local)返回的变量

以下是代码:

string smtpServer = Dts.Connections["SMTP Outgoing"].Properties["SmtpServer"]
.GetValue(Dts.Connections["SMTP Outgoing"]).ToString();



MailMessage email = new MailMessage();
email.To.Add(new MailAddress(SendMailTo));
email.From = new MailAddress(SendMailFrom);
email.Subject = SendMailSubject;
email.Body = SendMailBody;

email.IsBodyHtml = true;

SmtpClient smtpClient = new SmtpClient(smtpServer)
{
    DeliveryMethod = SmtpDeliveryMethod.Network,
    Credentials = new NetworkCredential()
};

大多数解决方案显示将用户名和密码放入NetworkCredentials中。但是,我们没有NetworkCredentials的用户名(我的网络专家向我保证了这一点),我的经理说我们不需要提供网络凭据,因为我们已经设置了smtp连接管理器。

关于如何在无法指定NetworkCredentials的情况下从“ alert@company.org”发送此邮件的想法?

1 个答案:

答案 0 :(得分:0)

您需要确保发送电子邮件时所用的计算机IP对SMTP服务器具有匿名访问权限。我有使用VB脚本发送电子邮件的类似情况。 我使用了以下参数进行身份验证(考虑到我的机器IP在Microsoft Exchange SMTP服务器上具有匿名访问权限)

objEmail.Configuration.Fields.Item _     (“ http://schemas.microsoft.com/cdo/configuration/sendusing” = 2