Так как вы взрываетесь на
string sType = item.Attachments[i].ContentType.ToLower();
и вы уже проверили длину вложений, поэтому тип содержимого объекта Attachment не должен быть установлен. Поскольку вы используете это для выполнения остальной части своего кода, похоже, что это требуется для вас. Как генерируется это сообщение?
Я бы добавил немного кода, чтобы взглянуть на вложение, может быть, свойство AttachmentType или FileName, чтобы убедиться, что у вас есть данные вложения, и определить порядок действий. Может быть, вы добавляете вложение самостоятельно и вам просто нужно установить тип контента. Удачи!