我有以下代码在循环访问从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),但我无法弄清楚如何以及在何处实施它们。
我将不胜感激。
答案 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#。