Я пытаюсь прикрепить iTextSharp pdf к Outlook MailItem, но на самом деле добавление Attachment всегда приводит к исключению ArgumentException, а дополнительная информация просто говорит: «Извините что-то пошло не так. Возможно, вы захотите попробовать еще раз ».C#: Прикрепить iTextSharp в памяти в виде вложения Outlook
Вот соответствующий код:
public void SendPDF(string subject, string body, string To)
{
var pdf = GeneratePDF();
Outlook.Application mailApp = new Outlook.Application();
Outlook.MailItem mail = mailApp.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem;
mail.Subject = subject;
mail.Body = body;
var addresses = To.Split(',');
foreach (var address in addresses)
{
mail.Recipients.Add(address);
}
//error happens here:
mail.Attachments.Add(pdf, Type.Missing, Type.Missing, EquipmentName + ".pdf");
mail.Recipients.ResolveAll();
mail.Send();
}
Не прикрепление результаты в формате PDF в успешной электронной почте отправляется, но, очевидно, это побеждает точку. Создание PDF и его хранение где-то не является вариантом. Любая помощь будет принята с благодарностью!
Первый аргумент Attachments.Add - это * имя_файла * (полный путь), передавая его содержимое сгенерированного pdf, безусловно, приведет к ошибке. –
@ Пол-Ян Действительно? Текст наведения показывает, что первым аргументом является «object Source». Это просто вводит в заблуждение? В любом случае, спасибо за ваш ответ! Вы знаете, как это сделать? – deckeresq
Это либо имя файла, либо другой файл MailItem, который вы хотите подключить (см. Https://msdn.microsoft.com/EN-US/library/office/ff869553.aspx). Невозможно сделать это с помощью объектной модели .NET Outlook ... Или используйте Redemption (коммерческий продукт), воспроизведите то, что делает Redemption (много работы), или полностью удалите Outlook и используйте MailMessage для отправки электронной почты. –