gpt4 book ai didi

c# - 从指定的 Outlook 帐户发送电子邮件

转载 作者:太空狗 更新时间:2023-10-30 00:40:30 25 4
gpt4 key购买 nike

我正在使用 Outlook2013,它有许多来自 exchange 和 pop 服务器的邮箱。/p>

我正在尝试使用 Outlook 自动化功能通过 support@mydomain.com 帐户发送电子邮件。

我遇到的问题是以下代码在支持发件箱中创建了一个邮件项,但发件人字段是 rob@mydomain.com 而不是 support@mydomain.com。这会阻止它被发送。

我想将发件人地址更改为 support@mydomain.com。我认为通过设置 Sendusingaccount 属性可以做到这一点。

非常感谢任何帮助。

    public static string Send_Email_Outlook(string _recipient, string _message, string _subject, string _cc, string _bcc, string accountname)
{
try
{

Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();

// Get the NameSpace and Logon information.
Microsoft.Office.Interop.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);

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

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

// Set HTMLBody.
oMsg.HTMLBody = _message;

oMsg.To = _recipient;
oMsg.CC = _cc;
oMsg.BCC = _bcc;


#region Send via another account

if (accountname.Trim().Length != 0)
{
Microsoft.Office.Interop.Outlook.Accounts accounts = oMsg.Session.Accounts;
for (int i = 1; i <= accounts.Count; i++)
{
string accountfound = accounts[i].DisplayName.ToLower();
if (accountname.ToLower() == accountfound)
{
oMsg.SendUsingAccount = accounts[i]; // Send using support account
Microsoft.Office.Interop.Outlook.Recipient recipient = oMsg.Session.CreateRecipient(accountfound);
oMsg.Sender = recipient.AddressEntry;
break;
}
}
}
#endregion

// Send.
(oMsg as Microsoft.Office.Interop.Outlook._MailItem).Send();

// Log off.
oNS.Logoff();

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


}

// Return Error Message
catch (Exception e)
{
return e.Message;
}

// Default return value.
return "";

}

最佳答案

是的,您可以使用 SendUsingAccount属性来设置您需要从中发送项目的正确帐户。

 public static Outlook.Account GetAccountForEmailAddress(Outlook.Application application, string smtpAddress) 
{

// Loop over the Accounts collection of the current Outlook session.
Outlook.Accounts accounts = application.Session.Accounts;
foreach (Outlook.Account account in accounts)
{
// When the e-mail address matches, return the account.
if (account.SmtpAddress == smtpAddress)
{
return account;
}
}
throw new System.Exception(string.Format("No Account with SmtpAddress: {0} exists!", smtpAddress));
}

public static string Send_Email_Outlook(string _recipient, string _message, string _subject, string _cc, string _bcc, string accountname)
{
try
{

Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();

// Get the NameSpace and Logon information.
Microsoft.Office.Interop.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);

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

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

// Set HTMLBody.
oMsg.HTMLBody = _message;

oMsg.To = _recipient;
oMsg.CC = _cc;
oMsg.BCC = _bcc;


#region Send via another account

// Retrieve the account that has the specific SMTP address.
Outlook.Account account = GetAccountForEmailAddress(oApp , "support@mydomain.com");
// Use this account to send the e-mail.
oMsg.SendUsingAccount = account;

// Send.
(oMsg as Microsoft.Office.Interop.Outlook._MailItem).Send();

// Log off.
oNS.Logoff();

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


}

// Return Error Message
catch (Exception e)
{
return e.Message;
}

// Default return value.
return "";

}

关于c# - 从指定的 Outlook 帐户发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27162332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com