首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否使用MailMessage向多个收件人发送电子邮件?

是否使用MailMessage向多个收件人发送电子邮件?
EN

Stack Overflow用户
提问于 2014-05-06 09:21:29
回答 4查看 209.8K关注 0票数 99

我在SQL Server中存储了多个电子邮件收件人。当我点击发送在网页上,它应该发送电子邮件给所有收件人。我使用;分隔电子邮件。

以下是单个收件人的代码。

代码语言:javascript
复制
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();
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-05-06 10:09:35

简单!

只需在";“字符上拆分传入地址列表,并将它们添加到邮件中:

代码语言:javascript
复制
foreach (var address in addresses.Split(new [] {";"}, StringSplitOptions.RemoveEmptyEntries))
{
    mailMessage.To.Add(address);    
}

在本例中,addresses包含"address1@example.com;address2@example.com“。

票数 195
EN

Stack Overflow用户

发布于 2015-06-01 14:49:44

正如Adam Miller在评论中所建议的,我将添加另一个解决方案。

MailMessage(String from,String to)构造函数接受逗号分隔的地址列表。所以,如果你碰巧有一个逗号(',')分隔的列表,用法就像这样简单:

代码语言:javascript
复制
MailMessage Msg = new MailMessage(fromMail, addresses);

在这种情况下,我们可以将“;”替换为“,”,并且仍然使用构造函数。

代码语言:javascript
复制
MailMessage Msg = new MailMessage(fromMail, addresses.replace(";", ","));

无论你喜欢这个还是被接受的答案,这取决于你。可以说,循环使意图更清晰,但这更简短,也不模糊。但是,如果您已经有一个逗号分隔的列表,我认为这是可行的方法。

票数 91
EN

Stack Overflow用户

发布于 2021-08-29 08:40:44

这就是我的工作原理:

代码语言:javascript
复制
            var addresses = "firstemail@email.com;secondemail@email.com";
            var fromAddress = new MailAddress("sender@email.com", "Sender");
            const string fromPassword = "Password";
            string subject = "[Message] Message Subject" ;
            string body = "Message Body";

            var smtp = new SmtpClient
            {
                Host = "smtp.email.com", 
                Port = 587, //or 25 depending on your smtp server config
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
            };
            foreach (var address in addresses.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries))
            {
            using (var message = new MailMessage(fromAddress.ToString(), address)
            {
                Subject = subject,
                Body = body,
                Priority = MailPriority.High
                
            })
                {
                
                    smtp.Send(message);
                }
            }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23484503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档