我有多个电子邮件收件人存储在Sql Server中.当我点击网页上的发送时,它应该向所有收件人发送电子邮件.我使用';'分隔了电子邮件.
以下是单个收件人代码.
MailMessage Msg = new MailMessage();
MailAddress fromMail = new MailAddress(fromEmail);
Msg.From = fromMail;
Msg.To.Add(new MailAddress(toEmail));
if (ccEmail != "" && bccEmail != "")
{
Msg.CC.Add(new MailAddress(ccEmail));
Msg.Bcc.Add(new MailAddress(bccEmail));
}
SmtpClient a = new SmtpClient("smtp server name");
a.Send(Msg);
sreader.Dispose();
Run Code Online (Sandbox Code Playgroud)
Bre*_*een 164
简单!
只需将传入的地址列表拆分为";" 字符,并将它们添加到邮件消息:
foreach (var address in addresses.Split(new [] {";"}, StringSplitOptions.RemoveEmptyEntries))
{
mailMessage.To.Add(address);
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,addresses包含" address1@example.com;address2@example.com".
Are*_*eks 73
正如Adam Miller在评论中所建议的,我将添加另一种解决方案.
MailMessage(String from,String to)构造函数接受以逗号分隔的地址列表.因此,如果你碰巧已经有一个逗号(',')分隔列表,那么用法很简单:
MailMessage Msg = new MailMessage(fromMail, addresses);
Run Code Online (Sandbox Code Playgroud)
在这种特殊情况下,我们可以替换';' for','仍然使用构造函数.
MailMessage Msg = new MailMessage(fromMail, addresses.replace(";", ","));
Run Code Online (Sandbox Code Playgroud)
无论您喜欢这个还是接受的答案,都取决于您.可以说循环使意图更清晰,但这更短,而且不明显.但是,如果您已经有逗号分隔列表,我认为这是要走的路.
Shr*_*gam 14
根据Microsoft 文档,该MailMessage.To属性:
获取包含此电子邮件收件人的地址集合。
该集合采用MailAddressCollection对象的形式,该对象有一个内置Add(string)方法:
将电子邮件地址列表添加到集合中。
Run Code Online (Sandbox Code Playgroud)public void Add (string addresses);参数:
addresses- 细绳要添加到 的电子邮件地址
MailAddressCollection。多个电子邮件地址必须用逗号字符(“,”)分隔。
正如您所看到的,电子邮件地址必须用逗号分隔,而不是分号。您可以使用以下方法解决该错误replace():
Msg.To.Add(toEmail.replace(";", ","));
Run Code Online (Sandbox Code Playgroud)
这将产生一个以逗号分隔的电子邮件地址列表。
| 归档时间: |
|
| 查看次数: |
154837 次 |
| 最近记录: |