У меня есть контейнер цикла по каждому элементу с задачей отправки почты с помощью диспетчера подключений SMTP, который успешно отправляет электронные письма.Мне нужно отправлять электронные письма в формате HTML и понимать, что Задача «Отправить почту» этого не сделает.Я добавил задачу «Сценарий» для включения текста HTML в тело письма, но ошибки сценария с
Не удалось разрешить удаленное имя
Использование того жеДиспетчер соединений SMTP, который работает в задаче «Отправить почту».Как я могу отправить несколько электронных писем на список адресов электронной почты?Любая помощь будет принята с благодарностью.
вся ошибка:
System.Net.Mail.SmtpException was unhandled by user code
HResult=-2146233088
Message=Failure sending mail.
Source=System
StackTrace:
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at ST_209a900aa97949759ea05ad934ade067.ScriptMain.Main() in c:\Users\sschildt\AppData\Local\Temp\2\Vsta\e2ae5c29103d447fad1855720cffe591\ScriptMain.cs:line 117
InnerException: System.Net.WebException
HResult=-2146233079
Message=The remote name could not be resolved: 'SmtpServer=xxxx.xxxx.xxxx.edu;UseWindowsAuthentication=True;EnableSsl=False;'
Source=System
StackTrace:
at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6)
at System.Net.PooledStream.Activate(Object owningObject, Boolean async, GeneralAsyncDelegate asyncCallback)
at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback)
at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout)
at System.Net.Mail.SmtpConnection.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)
at System.Net.Mail.SmtpClient.GetConnection()
at System.Net.Mail.SmtpClient.Send(MailMessage message)
InnerException:
РЕШЕНИЕ:
#region Namespaces
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.Net.Mail; // Added
#endregion
namespace ST_ccd5e092bfdc417c8c29f1c22c390108
{
[Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
public void Main()
{
String SendMailFrom = Dts.Variables["mailfrom"].Value.ToString();
String SendMailTo = Dts.Variables["mailto"].Value.ToString();
String SendMailToName = Dts.Variables["mailname"].Value.ToString();
String SendMailSubject = Dts.Variables["mailsubject"].Value.ToString();
String SendMailBody = Dts.Variables["mailbody"].Value.ToString();
String SendMailAttach = Dts.Variables["vattach"].Value.ToString();
SendMailBody = SendMailToName + ",<p>" + SendMailBody;
String SmtpServer = Dts.Connections["SMTP Connection Manager"].Properties["SmtpServer"].GetValue(Dts.Connections["SMTP Connection Manager"]).ToString();
// Create an email and change the format to HTML
MailMessage myHtmlFormattedMail = new MailMessage(SendMailFrom, SendMailTo, SendMailSubject, SendMailBody);
myHtmlFormattedMail.IsBodyHtml = true;
// Create a SMTP client to send the email
SmtpClient mySmtpClient = new SmtpClient(SmtpServer);
if (String.IsNullOrEmpty(SendMailAttach))
{
//
}
else
{
myHtmlFormattedMail.Attachments.Add(new Attachment(SendMailAttach));
}
mySmtpClient.Send(myHtmlFormattedMail);
// Close Script Task with success
Dts.TaskResult = (int)ScriptResults.Success;
}
#region ScriptResults declaration
enum ScriptResults
{
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
};
#endregion
}
}