在Outlook对象邮件中将发件人地址更改为默认服务器

时间:2015-03-30 10:59:27

标签: c# outlook

我有以下代码在循环访问从db:

检索的数据时自动发送电子邮件
public void sendMailV2(string subject, string body, string emailAddress)
  {
        // Create the Outlook application.
        Outlook.Application  oApp = new Outlook.Application();

        // Get the NameSpace and Logon information.
        Outlook.NameSpace oNS = oApp.GetNamespace("mapi");

        // Log on by using a dialog box to choose the profile.
        oNS.Logon(Missing.Value, Missing.Value, true, true); 

        // Alternate logon method that uses a specific profile.
        // TODO: If you use this logon method, 
        //  change the profile name to an appropriate value.
        //oNS.Logon("YourValidProfile", Missing.Value, false, true); 

        // Create a new mail item.
        Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);

        // Set the subject.
        oMsg.Subject = subject;

        // Set HTMLBody.
        oMsg.HTMLBody = body;

        // Add a recipient.
        Outlook.Recipients oRecips = (Outlook.Recipients)oMsg.Recipients;
        // TODO: Change the recipient in the next line if necessary.
        Outlook.Recipient oRecip = (Outlook.Recipient)oRecips.Add(emailAddress);
        oRecip.Resolve();

        // Send.
        oMsg.Send();

        // Log off.
        oNS.Logoff();

        // Clean up.
        oRecip = null;
        oRecips = null;
        oMsg = null;
        oNS = null;
        oApp = null;
    }

但是,我希望从服务器发送电子邮件,而不是我自己的Outlook。我有服务器的用户名和密码(someserver@serving.com),但我无法弄清楚如何以及在何处实施它们。

我将不胜感激。

1 个答案:

答案 0 :(得分:0)

首先,如果您需要发送多封电子邮件,则无需创建新的Application实例。您可以考虑在方法之外移动以下代码行,并在全局范围内创建Application实例。

    // Create the Outlook application.
    Outlook.Application  oApp = new Outlook.Application();

如果您在Outlook中配置了另一个帐户,则可以使用MailItem类的SendUsingAccount属性,该属性允许设置一个Account对象,该对象表示将在其下发送MailItem的帐户。

如果您没有在Outlook中配置所需的帐户,则可以考虑使用BCL类来完成工作。有关详细信息,请参阅How to send email from C#