我有一个ssis包,我尝试通过脚本任务向用户列表发送电子邮件。 我能够成功地向1000个用户发送邮件,但我收到10个错误。我正在尝试调试此问题。电子邮件ID虽然没有任何问题。请在下面找到代码段。任何指针都会非常有用。
private void SendMailMessage(string SendTo, string SendCC, string SendBCC, string From, string Subject, string Body, bool IsBodyHtml, string Server, string FileAttachment)
//private void SendMailMessage(string SendTo, string From, string Subject, string Body, bool IsBodyHtml, string Server)
{
SmtpClient mySmtpClient;
String[] splittedAddresses;
MailMessage htmlMessage;
StringBuilder sbAddresses = new StringBuilder();
//emails in a batch.
int numberOfEmails = 10;
int totalEmails = 0;
//take all the addressess and append them into one whole object.
if (!String.IsNullOrEmpty(SendTo))
{
sbAddresses.Append(SendTo);
}
if (!String.IsNullOrEmpty(SendCC))
{
if (sbAddresses.Length > 0)
{
sbAddresses.Append(String.Format(",{0}", SendCC));
}
else
{
sbAddresses.Append(SendCC);
}
}
if(!String.IsNullOrEmpty(SendBCC))
{
if (sbAddresses.Length > 0)
{
sbAddresses.Append(String.Format(",{0}", SendBCC));
}
else
{
sbAddresses.Append(SendBCC);
}
}
mySmtpClient = new SmtpClient(Server);
splittedAddresses = sbAddresses.ToString().Split(new char [] {','}, StringSplitOptions.RemoveEmptyEntries);
//Send the email in batches of #numberOfEmails
while (totalEmails < splittedAddresses.Length)
{
IEnumerable<String> emailRecipients = splittedAddresses.Skip(totalEmails).Take(numberOfEmails);
CreateMailMessage(From, Subject, Body, IsBodyHtml, FileAttachment, out htmlMessage);
foreach(string email in emailRecipients)
{
htmlMessage.Bcc.Add(new MailAddress(email));
}
mySmtpClient.Send(htmlMessage);
totalEmails += emailRecipients.Count();
}
//mySmtpClient.Credentials = CredentialCache.DefaultNetworkCredentials;
}
private static void CreateMailMessage(string From, string Subject, string Body, bool IsBodyHtml, string FileAttachment, out MailMessage htmlMessage)
{
htmlMessage = new MailMessage();
htmlMessage.From = new MailAddress(From);
htmlMessage.Subject = Subject;
htmlMessage.Body = Body;
htmlMessage.IsBodyHtml = IsBodyHtml;
htmlMessage.Attachments.Add(new Attachment(FileAttachment));
}