【发布时间】:2015-01-23 21:27:15
【问题描述】:
我正在升级一个群发邮件应用程序以使用新的 System.Net.Mail 命名空间。我还在为文本和 HTML 版本设置 AlternateViews。
目前我正在使用 DataReader 从数据库中获取电子邮件地址并发送邮件。在旧代码中,我会在循环结束时清除 To 和 BCC 属性。
MailMessage mailMessage = new MailMessage();
while (dr.Read())
{
....
mailMessage.To.Add(new MailAddress(dr["EmailAddress"].ToString()));
if ((bool)dr["SecondaryNotify"])
mailMessage.Bcc.Add(new MailAddress(dr["SecondaryEmail"].ToString()));
// Send email
...
}
显然有一个可以在 MailMessage 类 mailMessage.To.Remove(MailAddress item) 的 To 属性上调用的 Remove 方法 - 我已经从智能感知中确定了这一点。我检查了 MSDN,找不到这种用法的示例。
任何人都可以协助语法删除循环的每次迭代的收件人和密件抄送地址 - 在每封电子邮件发送后?
【问题讨论】:
-
那么你为什么要添加 To 和 BCC 字段,当你打算删除它们时。
-
我已经向这些地址发送了电子邮件 - 我想为下一封电子邮件获取新地址。
-
那么你应该将
MailMessage mailMessage = new MailMessage();移动到while循环中,这样它就会为每次迭代创建新实例,而你不必删除/清除它们
标签: c# asp.net email webforms system.net.mail