Как исключить или удалить определенный адрес электронной почты из функции sendEmail в C#
Я пытаюсь удалить или исключить пару конкретных адресов электронной почты из списка адресов электронной почты CC. Как мне это сделать? Вот функция:
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;
}
}
2 ответа
Вы можете попробовать это, если знаете электронную почту:
foreach (var item in emailCc.Split(';'))
{
if (!new string[] { "bad@gmail.com", "uncle@sam.com", "stack@overflow.com"}.Contains(email))
{
email.CC.Add(new MailAddress(item.Trim()));
}
}
вместо оператора if вы можете использовать регулярное выражение, если хотите исключить какое-либо электронное письмо с определенным шаблоном.
Вы помещаете нежелательные электронные письма в массив:
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));
Затем вы добавляете их в свой адрес электронной почты.