我有一份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”发送此邮件的想法?
答案 0 :(得分:0)
您需要确保发送电子邮件时所用的计算机IP对SMTP服务器具有匿名访问权限。我有使用VB脚本发送电子邮件的类似情况。 我使用了以下参数进行身份验证(考虑到我的机器IP在Microsoft Exchange SMTP服务器上具有匿名访问权限)
objEmail.Configuration.Fields.Item _ (“ http://schemas.microsoft.com/cdo/configuration/sendusing” = 2