【问题标题】:Put send mail into send mail folder outlook将发送邮件放入发送邮件文件夹outlook
【发布时间】:2014-04-14 19:38:23
【问题描述】:

我已经制作了一个向学生发送邮件的程序。 Windows 窗体程序(用 C# 编写)使用带有凭据的 SMTP 服务器发送电子邮件;

var message = new MailMessage();

            foreach (var m in arr999)
            {
                message.Bcc.Add(m);
            }

            message.Bcc.Add(textBox3.Text);


            message.From = new MailAddress(textBox3.Text, textBox2.Text);
            message.Subject = textBox4.Text;
            var htmlstring = "<P STYLE=\"font-size: 10pt; font-family: verdana;\">";
            htmlstring += textBox5.Text.Replace(Environment.NewLine, "<br />");
            htmlstring += "<br /><br />" + textBox6.Text.Replace(Environment.NewLine, "<br />");

            message.Body = htmlstring;
            message.IsBodyHtml = true;

            var client = new SmtpClient("***", 25);
            if (gebruikersnaam != "noreply")
            {
                client.Credentials = new System.Net.NetworkCredential(gebruikersnaam, wachtwoord);
            }
            client.Send(message);
            MessageBox.Show("De E-mail is verstuurd!", "Voltooid!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            this.Close();
        }

        catch (Exception ex)
        {

            MessageBox.Show("De E-mail kan niet worden verstuurd.\n\nReden:\n" + ex.Message + "", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            wachtlabel.Visible = false;

        }

邮件服务器是 Microsoft Exchange 服务器。但是如何将使用此程序发送的项目放入 Outlook、Outlook Web App 等中的“发送邮件”文件夹中?

任何帮助将不胜感激。

【问题讨论】:

  • 如果您想与用户发送邮件文件夹进行交互,您需要连接到 Exchange 而不是仅通过 SMTP 中继使用它。运行您的客户端的用户将需要 Exchange 邮件帐户的相应权限。

标签: c# outlook smtp


【解决方案1】:

Outlook 对象模型不允许您在已发送状态下创建新邮件并设置 SentOn 属性。您可以为此使用Redemption。大致如下(VB):

  set Session = CreateObject("Redemption.RDOSession")
  Session.Logon
  set Folder = Session.GetDefaultFolder(olFolderSentMail)
  set Msg = Folder.Items.Add
  Msg.Sent = true 'must be done before calling Save!
  set Recip = Msg.Recipients.Add("user@domain.demo")
  Recip.Resolve
  Msg.Subject = "test"
  Msg.Body = "test body"
  Msg.SentOn = Now
  Msg.Save

C# 版本(您需要下载并安装 Redemption 并将其添加到您的项目引用中):

  RDOSesssion Session = new RDOSession();
  Session.Logon();
  RDOFolder Folder = Session.GetDefaultFolder(rdoDefaultFolders.olFolderSentMail);
  RDOMail Msg = Folder.Items.Add("IPM.Note");
  Msg.Sent = true; //must be done before calling Save!
  RDORecipient Recip = Msg.Recipients.Add("user@domain.demo");
  Recip.Resolve();
  Msg.Subject = "test";
  Msg.Body = "test body";
  Msg.SentOn = Now;
  Msg.Save();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-14
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 2012-07-21
    • 2014-09-20
    • 2021-09-04
    相关资源
    最近更新 更多