Мы создаем приложение, которое выполняет некоторый процесс и, наконец, отправляет отчет пользователю по электронной почте через порт 587 и 465. Для порта 567 мы используем стандартную System.Net.Mail, и все работает отлично. Для другого порта 465 мы используем AegisImplicitMail, и мы не можем отправить изображение встроенным.
Вот код для отправки встроенного изображения с портом 587
if (SettingDao.GetSMTPPort() == 587)
{
InlineChartExplicit = new Attachment(ChartDayImg);
string contentID = "inlineChartExplicit";
InlineChartExplicit.ContentId = contentID;
InlineChartExplicit.ContentDisposition.Inline = true;
InlineChartExplicit.ContentDisposition.DispositionType = DispositionTypeNames.Inline;
Html += @"<img src='cid:" + InlineChartExplicit.ContentId + @"' + style='width:50%;height:50%'/>";
}
и в emailService
if (InlineAttmExplicitSSL != null)
{
mail.Attachments.Add(InlineAttmExplicitSSL);
}
тогда мы используем тот же код для порта 465, используя AegisImplicitMail, но встроенное изображение не работает. Вместо этого у нас есть вложение в конце письма
else if (SettingDao.GetSMTPPort() == 465)
{
InlineChartImplicit = new MimeAttachment(ChartDayImg);
string contentID = "inlineChartImplicit";
InlineChartImplicit.ContentId = contentID;
InlineChartImplicit.ContentDisposition.Inline = true;
InlineChartImplicit.ContentDisposition.DispositionType = DispositionTypeNames.Inline;
Html += @"<img src='cid:" + InlineChartImplicit.ContentId + @"' + style='width:50%;height:50%'/>";
}
в почтовом сервисе:
if (InlineAttmImplicitSSL != null)
{
mailMessage.Attachments.Add(InlineAttmImplicitSSL);
}
Есть что-то, что мы пропустили для AegisImplicitMail? Спасибо.