Случайный «Индекс находился за пределами массива» как SmtpException - PullRequest
3 голосов
/ 14 марта 2012

Случайно получаю исключение с помощью метода Send, показанного ниже.Исключение, которое я получаю:

Exception information:
    Exception type: System.Net.Mail.SmtpException
    Exception message: Failure sending mail.

Inner exception information (level 1):
    Exception type: System.IndexOutOfRangeException
    Exception message: Index was outside the bounds of the array.

Мой метод выглядит следующим образом:

public void Send(string from, List<string> to, string subject, string body, List<string> attachments)
{
    var email = new MailMessage();
    var server = new SmtpClient();

    // Add each mail property
    email.From = new MailAddress(from);
    foreach (var t in to)
        email.To.Add(t);
    email.Subject = subject;
    email.IsBodyHtml = true;
    email.Body = body;
    foreach (var a in attachments)
        email.Attachments.Add(new Attachment(a));
    server.Send(email);
}

Перед вызовом этого переопределения я проверяю, что список и список вложенийоба имеют как минимум одно значение, и это значение является действительным.

Исключение происходит на сервере sever.Send.

1 Ответ

5 голосов
/ 14 марта 2012

Это похоже на ту же проблему, что и этот вопрос о сбое .NET 4.0 при отправке писем с большими вложениями .Microsoft опубликовала исправление здесь .

...