How to send email to multiple recipients with MailMessage
Master System Design with Codemia
Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.
Sending email to multiple recipients is a common requirement in many applications, and the MailMessage class in C# offers a robust way to manage this. Here is a detailed explanation on how to accomplish this task using .NET's System.Net.Mail namespace.
Understanding MailMessage
MailMessage is a class provided by the .NET framework used to create and manage electronic mail messages. This class allows developers to specify important email parameters such as the sender, recipient, subject, body content, and attachments.
Basic Structure of MailMessage
The main properties of MailMessage are:
- From: The sender's email address.
- To: A collection of email addresses of the recipients.
- CC: Carbon copy recipients.
- BCC: Blind carbon copy recipients.
- Subject: The subject of the email.
- Body: The body or content of the email.
- Attachments: Files to be attached with the email.
Sending Email to Multiple Recipients
To send an email to multiple recipients, you will utilize the To property of the MailMessage class, which is a MailAddressCollection. This allows you to add one or more recipients.
Step-by-Step Implementation:
- Create a MailMessage Instance: Instantiate a new
MailMessageobject. - Set the From Address: Assign the email address of the sender using the
Fromproperty. - Add Recipients: Use the
To,CC, andBCCproperties to specify the recipients. Each of these properties is aMailAddressCollection, which allows you to add multipleMailAddressobjects. - Set Subject and Body: Specify the email's subject and body content.
- Optional Attachments: Add any necessary attachments to the email.
- SMTP Configuration: Configure and utilize
SmtpClientto send the email.
Example Code:
- Ensure that the SMTP configuration aligns with your server's requirements, including server address and port.
- Enable SSL if the server requires encrypted communication.
- Provide valid credentials if authentication is needed.
- Implement error handling to catch exceptions that may occur during the sending process, such as network issues or authentication failures.

