【问题标题】:Create outlook message with attachment using vb.net使用 vb.net 创建带有附件的 Outlook 消息
【发布时间】:2012-03-26 23:37:46
【问题描述】:

我想创建一个带有主题和一些附件的 Outlook 消息,供用户在准备好后发送。我有附件的文件路径。我该怎么做呢?

基本上,用户需要单击应用程序上的一个按钮,然后打开一个带有预定义消息和一些附件的 Outlook 消息窗口。然后,他们应该能够在通过 Outlook 发送之前修改和添加所需的“收件人”等。

谢谢!

【问题讨论】:

  • 三个字:“Outlook 对象模型”。如果您喜欢痛苦,还有“直接” MAPI 访问、Redemption(一个很棒的库)和 CDO。
  • C# 或 VB.Net - 那些标签有冲突?
  • 你的问题显示缺乏研究,我把你问题的标题放在谷歌上,找到了一篇知识库文章。如果您希望用户在发送电子邮件之前看到电子邮件,只需交换代码行 oMsg.Send(); 并将其更改为 Display as per msdn.microsoft.com/en-us/library/ff861853.aspx
  • OOM 听起来很对 - 在 c# 和 vb.net 之间没有关系 - 我想它可以互换。
  • 这是我遇到的发送与显示问题 - 不知道要显示的术语,但我看过那篇文章。谢谢。

标签: c# .net vb.net outlook


【解决方案1】:

如何使用 Visual Basic .NET 在电子邮件中发送附件

http://support.microsoft.com/kb/313803

这里是 C# 版本的代码:

void Main()
{
    // Create an Outlook application.
    Outlook._Application oApp;
    oApp = new Outlook.Application();

    // Create a new MailItem.
    Outlook._MailItem oMsg;
    oMsg = oApp.CreateItem(Outlook.OlItemType.olMailItem);
    oMsg.Subject = "Send Attachment Using OOM in Visual Basic .NET";
    oMsg.Body = "Hello World" + vbCr + vbCr;

    // TODO: Replace with a valid e-mail address.
    oMsg.To = "user@example.com";

    // Add an attachment
    // TODO: Replace with a valid attachment path.
    string sSource = "C:\\Temp\\Hello.txt";
    // TODO: Replace with attachment name
    string sDisplayName = "Hello.txt";

    string sBodyLen = oMsg.Body.Length;
    Outlook.Attachments oAttachs = oMsg.Attachments;
    Outlook.Attachment oAttach;
    oAttach = oAttachs.Add(sSource, , sBodyLen + 1, sDisplayName);

    // Send
    oMsg.Send();

    // Clean up
    oApp = null;
    oMsg = null;
    oAttach = null;
    oAttachs = null;
}

【讨论】:

  • 我建议在至少邮件上使用明确的ReleaseComObject -- 如果不这样做,Outlook 邮件缓存 咬人。这是我的警告,以无数小时追踪因未能这样做而导致的细微错误为后盾。 (还有附件,但这并不重要,如果您已经走到了那一步,不妨也将应用程序视为非托管资源......但至少这样做是为了消息。)
  • @pst 感谢您指出这一点,这里的 Omar 是一个方便的链接,用于了解如何处理混合托管内存管理和非托管代码内存管理:jake.ginnivan.net/vsto-com-interop
  • @pst 谢谢我做了 :) - 谢谢,今天我需要它了 :)
  • @Jeremy Thompson 感谢您的帮助和文章!非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 2020-04-24
  • 2018-12-24
  • 2012-01-17
  • 2015-08-31
  • 1970-01-01
相关资源
最近更新 更多