【问题标题】:Sending email on behalf of other user for office365-outlook为 office365-outlook 代表其他用户发送电子邮件
【发布时间】:2019-08-23 13:28:01
【问题描述】:

我正在使用使用 C# 创建的控制台应用程序发送电子邮件。我想使用不同的 From name 发送此电子邮件,我在许多网站上都找到了相同的代码,但它不适用于我的情况。

MailAddress mailFrom = new MailAddress("xyz@abc.com", "Sender");

我正在使用 office365-outlook。

我的完整代码是:-

 SmtpClient SmtpServer = new SmtpClient("smtp.office365.com", 25);
            MailAddress mailFrom = new MailAddress("xyz@abc.com", "Mailer");
            MailAddress mailTo = new MailAddress("xyz@abc.com");
            MailMessage mail = new MailMessage(mailFrom, mailTo);

            mailt.Subject = "Test Mail";
            mailt.Body = "This is for testing";

            SmtpServer.Credentials = new System.Net.NetworkCredential("xyz@abc.com", "password");
            SmtpServer.EnableSsl = true;

            SmtpServer.Send(mail);

那么在这种情况下,是否可以更改发送电子邮件的发件人姓名,或者我们可以使用代码在 Outlook 中代表其他用户发送电子邮件?

【问题讨论】:

  • 您是针对系统上安装的任何电子邮件客户端,还是专门针对 Outlook?还是特定类型的电子邮件帐户(Exchange、IMAP、POP)?

标签: c# system.net.mail


【解决方案1】:

使用Outlookobject model,您可以:

Outlook.Application OL = ....;
Outlook._MailItem mail;

mail = OL.CreateItem(Outlook.OlItemType.olMailItem) as Outlook._MailItem;
mail.Subject = subject;
mail.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
mail.HTMLBody = body;

//  add recipients
//  ....

mail.SentOnBehalfOfName = sender;
mail.Send();

这需要在您的系统上安装Outlook

要获得有关您的代码可能有问题的提示,您应该描述您收到的错误消息或失败。

【讨论】:

  • 我可以使用我的代码发送电子邮件,但发件人姓名未按预期发送
【解决方案2】:

你可以这样做:

    mail.From = new MailAddress("test@example.com");

【讨论】:

    猜你喜欢
    • 2020-06-23
    • 2017-10-12
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多