【发布时间】:2015-08-19 22:31:42
【问题描述】:
我正在尝试将 iTextSharp pdf 附加到 Outlook MailItem,但实际上添加附件总是会导致 ArgumentException,附加信息只是说:“抱歉,出了点问题。您可能想再试一次。”
以下是相关代码:
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的第一个参数是一个filename(完整路径),传递给它生成的pdf的内容肯定会报错。
-
@Paul-Jan 真的吗?悬停文本显示第一个参数是“对象源”。这只是误导吗?不管怎样,谢谢你的回复!你知道另一种方法吗?
-
它可以是文件名,也可以是您要附加的另一个 MailItem(请参阅 msdn.microsoft.com/EN-US/library/office/ff869553.aspx)。没有办法通过 .NET Outlook 对象模型来做到这一点......要么使用 Redemption(商业产品),重现 Redemption 所做的事情(大量工作),要么完全避免 Outlook 并使用 MailMessage 发送电子邮件。
-
@Paul-Jan 谢谢!我最终切换到使用 MailMessage。
标签: c# pdf outlook itextsharp