通过Interop库向多个收件人发送邮件C#
问题描述:
我正在开发一个具有邮件发送选项的桌面应用程序。我有以下的代码到和它的作品完美只有1个收件人:通过Interop库向多个收件人发送邮件C#
DialogResult status;
status = MessageBox.Show("Some message", "Info", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
if (status == DialogResult.OK)
{
try
{
// Create the Outlook application.
Outlook.Application oApp = new Outlook.Application();
// Create a new mail item.
Outlook.MailItem oMsg = (Outlook.MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
// Set HTMLBody.
//add the body of the email
oMsg.HTMLBody = "<html>" +
"<body>" +
"some html text" +
"</body>" +
"</html>";
int iPosition = (int)oMsg.Body.Length + 1;
//Subject line
oMsg.Subject = txt_mailKonu.Text;
oMsg.Importance = Outlook.OlImportance.olImportanceHigh;
// Recipient
Outlook.Recipients oRecips = (Outlook.Recipients)oMsg.Recipients;
//Following line causes the problem
Outlook.Recipient oRecip = (Outlook.Recipient)oRecips.Add(senderForm.getRecipientList().ToString());
oRecip.Resolve();
//oRecip.Resolve();
// Send.
oMsg.Send();
// Clean up.
oRecip = null;
oRecips = null;
oMsg = null;
oApp = null;
MessageBox.Show("Successful", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception)
{
MessageBox.Show("Failed", "Eror", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
我得到错误的粗线在那里我在下面的模式添加多个收件人: [email protected]。 COM; [email protected]
它适用于1个地址,但当我得到多个地址分开时抛出COM异常 - Outlook无法解析一个或多个名称。
希望你能帮助我。
答
您是否尝试将多个收件人添加到oMsg.Recipients
?
// I assume that senderForm.getRecipientList() returns List<String>
foreach(String recipient in senderForm.getRecipientList())
{
Outlook.Recipient oRecip = (Outlook.Recipient)oRecips.Add(recipient);
oRecip.Resolve();
}
如果需要的话,你可能会爆炸senderForm.getRecipientList().ToString()
与
String [] rcpts = senderForm.getRecipientList().ToString().Split(new string[] { "; " }, StringSplitOptions.None);
和foreach
循环使用的新对象。
+1
非常感谢你解决它! – neocorp 2012-08-03 07:06:14
是否有任何理由不能使用'System.Net.Mail'? – mgnoonan 2012-08-02 12:06:03
我需要标记和设置邮件的重要性级别,所以我选择它,System.Net.Mail提供这些吗? – neocorp 2012-08-02 13:45:06
优先,是的。标记,不。 http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.aspx – mgnoonan 2012-08-02 14:36:22