如何使用与登录用户不同的电子邮件帐户在C#中发送电子邮件

本文关键字:电子邮件 何使用 登录 用户 | 更新日期: 2023-09-27 18:24:39

我有一个工作表单,它从默认登录帐户发送电子邮件。我正在尝试添加一个功能,用户可以从下拉列表中选择一个电子邮件帐户,并通过alt地址发送电子邮件,比如info@companyname.com或support@companyname.com.我正在尝试使用"SendUsingAccount"选项,但没有成功。我在网上看过,但大部分都是用VB的例子,我不熟悉。我的代码如下:

Microsoft.Office.Interop.Outlook.Application objOutlook = new Microsoft.Office.Interop.Outlook.Application();
var mic = (MailItem)(objOutlook.CreateItem(OlItemType.olMailItem));
Inspector oAddSig = null;
mic.sendusingaccount = ??????????????     //here is where i need the help
mic.Subject = "Announcing Participant Website Enhancements!";
mic.Importance = OlImportance.olImportanceHigh;
mic.BodyFormat = OlBodyFormat.olFormatHTML;
//mic.Attachments.Add(PDFAttachment + yearending.Text + ".pdf");
object emailBody = ToolBox.GetStringFromTextFile((string)EmailBody);
oAddSig = mic.GetInspector;
mic.HTMLBody = emailBody + mic.HTMLBody;
//mic.Display(true);
mic.Send();

如何使用与登录用户不同的电子邮件帐户在C#中发送电子邮件

我总是使用System.Net.Mail命名空间中的SMTP客户端。它有一个名为"发送"的方法,允许您提供消息"来自"的地址

看看:http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx

只要您知道exchange服务器的地址(由于您在示例中尝试使用outlook,该地址应该是可以的),一切都应该是A-OK。可能也比上面的方法简单一点。

如果你有一个下拉列表,你可以创建一个值为dd的字符串,asign sendusingaccount=你的字符串

    Microsoft.Office.Interop.Outlook.Application objOutlook = new     Microsoft.Office.Interop.Outlook.Application(); 
    string email = yourdropdown.selectedvalue;
    var mic = (MailItem)(objOutlook.CreateItem(OlItemType.olMailItem)); 
    Inspector oAddSig = null; 
    mic.sendusingaccount = email 

我希望这能帮助你

    Outlook.Account account =
    Application.Session.Accounts["Hotmail"];
mic.SendUsingAccount = account;

可能你可以在会话中查看不同的帐户。。。

您可以检查:MSDN