【问题标题】:C#: Attach an in-memory iTextSharp pdf as an Outlook attachmentC#:将内存中的 iTextSharp pdf 作为 Outlook 附件附加
【发布时间】: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


【解决方案1】:

正如 Paul-Jan 在 cmets 中所发布的,Outlook 无法附加内存中的 pdf。我已切换到 MailMessage。

【讨论】:

    猜你喜欢
    • 2015-05-02
    • 2017-08-28
    • 2010-11-14
    • 1970-01-01
    • 2016-09-01
    • 2019-07-08
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多