【问题标题】:save smtp sent mail in outlook sent folder using outlook add in使用outlook添加将smtp发送的邮件保存在outlook发送的文件夹中
【发布时间】:2016-03-22 06:08:25
【问题描述】:

我想从 Outlook-addin 发送 smtp 发送邮件,该邮件保存到 Outlook 发送文件夹中

注意:将邮件项目保存在发送文件夹中的地址必须是我从地址指定的 smtp 而不是 Outlook 登录用户名。

public bool SendEMail()
{ 
   MailMessage mailNew = new MailMessage();

   var smtp = new SmtpClient("SmtpServer")
   {
        EnableSsl = false,
        DeliveryMethod = SmtpDeliveryMethod.Network
   };

    smtp.Port = 587;
    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
    smtp.UseDefaultCredentials = false; 
    System.Net.NetworkCredential credentials = 
         new System.Net.NetworkCredential("UserName", "password");
    smtp.EnableSsl = false;
    smtp.Credentials = credentials;
    MailAddress mailFrom = new MailAddress("clark@gmail.com");
    mailNew.From = mailFrom;
    mailNew.To.Add("someone@gmail.com");
    mailNew.Subject = Subject;
    mailNew.IsBodyHtml = Html;
    mailNew.Body = Body;
    smtp.Send(mailNew);

    return true;
}

提前致谢

【问题讨论】:

    标签: outlook vsto sendmail outlook-addin outlook-2010


    【解决方案1】:

    您需要在“已发送邮件”文件夹中创建一个已发送邮件,并使用 MailItem.PropertyAccessor 设置所有相关属性。请注意,PropertyAccessor 不会让您设置一些与发件人相关的属性。在 Outlook 2010 或更高版本中,您可以设置 MAilItem.Sender 属性。

    还要注意,send 标志在消息保存后无法更改,因此要使用 OOM 创建已发送项,您需要创建一个 post 项,然后将其 MessageClass 属性更改为 IPM.Note。

    另请注意,每次保存消息时,OOM 都会重置 ReceivedTime 和 SentOn 属性。

    如果使用Redemption 是一个选项,您可以执行以下操作(我想不到):

    Redemption.RDOSession session = new Redemption.RDOSession();
    session.MAPIOBJECT = Application.Session.MAPIOBJECT;
    Redemption.RDOMail message = session.GetDefaultFolder(rdoDefaultFolders.olFolderSentMail).Items.Add("IPM.Note");
    message.Sent = true;
    message.Subject = "test";
    message.Body = "fake sent message";
    message.Recipients.AddEx("The Recipient", "recipient@domain.com", "SMTP", olTo);
    string senderEntryID = session.AddressBook.CreateOneOffEntryID("Some Name", "SMTP", "user@domain.com", false, true);
    addressEntry = session.AddressBook.GetAddressEntryFromID(senderEntryID);
    message.Sender = addressEntry;
    message.SentOnBehalfOf = addressEntry;
    message.Save();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-14
      • 2013-08-16
      • 2020-09-06
      • 1970-01-01
      • 2016-08-27
      • 2022-07-20
      • 2011-03-12
      • 2016-11-01
      相关资源
      最近更新 更多