Home
Manage Your Code
Snippet: Splits an email address list into separate email addresses (C#)
Title: Splits an email address list into separate email addresses Language: C#
Description: Splits a comma, or semi-colon, delimited list of email addresses into separate valid and invalid email addresses. The list may also contain any number of empty spaces around the email addresses. Uses .NET 2.0 features. Views: 414
Author: Kevin McFarlane Date Added: 1/27/2007
Copy Code  
1using System.Text.RegularExpressions;
2
3public static void SplitEmails()
4{
5    string addressList = "kip@abc; joe.bloggs@mac.com ,  bob.jones@xyz.net, abc.co.uk;a.jones@recfirst.com";
6    
7    // Extract emails, skipping blank entries

8    string[] emails = addressList.Split(new char[] {' ', ';', ',' }, StringSplitOptions.RemoveEmptyEntries);
9
10    // Print the valid emails.

11    string[] validEmails = Array.FindAll<string>(emails, IsValidEmail);
12    foreach (string validEmail in validEmails)
13    {
14        Console.WriteLine("Valid Email = " + validEmail);
15    }
16
17    // Print the invalid emails

18    string[] invalidEmails = Array.FindAll<string>(emails, IsInvalidEmail);
19    foreach (string invalidEmail in invalidEmails)
20    {
21        Console.WriteLine("Invalid Email = " + invalidEmail);
22    }
23}
24
25public static bool IsValidEmail(string email)
26{
27    string pattern =
28        @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
29        @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
30        @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
31    Regex re = new Regex(pattern);
32
33    return re.IsMatch(email);
34}
35
36public static bool IsInvalidEmail(string email)
37{
38    return !IsValidEmail(email);
39}
40
Usage
SplitEmails();