首页 > 解决方案 > 如何从 c# 中的 sendEmail 函数中排除或删除特定的电子邮件地址

问题描述

我正在尝试从抄送电子邮件地址列表中删除或排除几个特定的​​电子邮件地址。我该怎么做?这是功能:

private void SendEmail(string emailTo, string subject, string body)
{
    using (SmtpClient client = new SmtpClient(System.Configuration.ConfigurationManager.AppSettings["SmtpServerAddress"]))
    {
        MailMessage email = new MailMessage();
        email.From = new MailAddress(GetUserEmail());
        string emailCc = ConfigurationManager.AppSettings["EmailCc"];
        foreach (var item in emailTo.Split(';'))
        {
            email.To.Add(new MailAddress(item.Trim()));
        }
        foreach (var item in emailCc.Split(';'))
        {
            email.CC.Add(new MailAddress(item.Trim()));
        }
        email.Subject = subject;
        email.IsBodyHtml = true;
        email.Body = body;

        return;
   }
}

标签: c#emailmailmessagemailaddress

解决方案


您将不需要的电子邮件放入数组中:

var badEmails = new [] { "a@a.aa", "b@b.bb" }

然后使用 LINQ 将它们从拆分中删除:

var ccList = emailCc.Split(';').Where(cc => !badEmails.Any(b => cc.IndexOf(b, System.StringComparison.InvariantCultureIgnoreCase) > -1));

然后将 ccList 中的内容添加到您的电子邮件中


推荐阅读