이 블로그에서는 Outlook 전자 메일 메시지(MSG, EML, EMLX 또는 MHTML 포함)를 만들고 .NET 또는 .NET Core에서 C#을 사용하여 동기 또는 비동기로 전자 메일을 보내는 방법을 배웁니다.
![C# 아웃룩 이메일 보내기](images/Send-Email-in-C.png#center)
이메일은 메시지를 교환하고 문서, 이미지 또는 기타 유형의 파일과 같은 콘텐츠를 공유하는 주요 소스가 되었습니다. 이메일 사용 빈도는 중요한 알림이나 문서를 여러 엔티티와 공유하기 위한 온라인 시스템 내에서 더 많습니다. 이러한 경우 템플릿을 준비하고 여러 이해 관계자에게 수동으로 이메일을 보내는 것은 시간이 많이 걸리고 바쁜 작업이 될 수 있습니다.
여기에 전자 메일을 원활하게 만들고 보낼 수 있는 전자 메일 자동화 서비스가 필요합니다. 따라서 이 기사에서는 널리 사용되는 Outlook 형식의 전자 메일 메시지를 만들고 프로그래밍 방식으로 전자 메일을 보내는 프로세스를 자동화하는 방법을 알려 드리겠습니다. 이 기사를 읽고 나면 다음을 수행할 수 있습니다.
- C#에서 전자 메일 메시지를 만들고 저장합니다.
- C#에서 HTML 본문으로 이메일을 만들고,
- C#으로 특정 인코딩으로 이메일을 만들고,
- C#에서 SMTP를 사용하여 동기적으로 이메일 보내기,
- C#에서 SMTP를 사용하여 비동기적으로 이메일 보내기,
- C#으로 대량 이메일을 보낼 수 있습니다.
Outlook 전자 메일을 만들고 보내기 위한 C# API
이메일 메시지 생성 및 전송 프로세스를 자동화하기 위해 강력한 이메일 조작 및 처리 API인 Aspose.Email for .NET을 사용합니다. MSG, EML/EMLX 등과 같은 MS Outlook 메시지를 포함하여 널리 사용되는 이메일 형식을 지원합니다. API의 DLL을 직접 다운로드하거나 Visual Studio의 NuGet 패키지 관리자 또는 패키지 관리자 콘솔을 통해 설치할 수 있습니다. .
PM> Install-Package Aspose.Email
C#(콘솔, ASP.NET 등) 응용 프로그램을 만들고 .NET용 Aspose.Email을 설치한 후에는 C#에서 이메일을 만들고 보낼 수 있습니다.
C#에서 Outlook 전자 메일 만들기
Outlook 이메일 메시지를 생성하거나 조작하기 위해 Aspose.Email은 MailMessage 클래스를 제공합니다. 이 클래스를 사용하면 이메일 메시지의 모든 속성(제목, 받는 사람, 보낸 사람 및 본문)을 설정하고, 첨부 파일을 추가하고, EML, MSG, MHTML 등과 같은 다양한 이메일 형식으로 메시지를 저장할 수 있습니다. 다음은 생성하는 단계입니다. 이메일 메시지:
- MailMessage 클래스의 인스턴스를 만듭니다.
- 메시지의 속성을 설정합니다.
- MailMessage.Save() 메서드를 사용하여 이메일 메시지를 저장합니다.
다음 코드 샘플은 C#에서 전자 메일 메시지를 만들고 저장하는 방법을 보여줍니다.
// MailMessage 클래스의 새 인스턴스 만들기
MailMessage message = new MailMessage();
// 메시지 제목, 본문, 발신자 정보 설정
message.Subject = "New message created by Aspose.Email for .NET";
message.Body = "This is the body of the email.";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
// 받는 사람 및 참조 받는 사람에 추가
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));
// 첨부 파일 추가
message.Attachments.Add(new Attachment("word.docx"));
// EML, EMLX, MSG 및 MHTML 형식으로 메시지 저장
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);
message.Save("EmailMessage.emlx", SaveOptions.CreateSaveOptions(MailMessageSaveType.EmlxFormat));
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);
message.Save("EmailMessage.mhtml", SaveOptions.DefaultMhtml);
C#에서 HTML 본문을 사용하여 Outlook 전자 메일 만들기
HTML 태그는 표, 이미지, 목록 등과 같은 다양한 요소로 이메일 본문을 보다 구조화되고 표현 가능하며 풍부하게 만드는 데 사용됩니다. HTML 본문이 있는 이메일을 생성하려는 경우 MailMessage.HtmlBody 속성을 사용할 수 있습니다. 다음 코드 샘플은 C#에서 HTML 본문을 사용하여 Outlook 전자 메일을 만드는 방법을 보여줍니다.
// MailMessage 클래스의 새 인스턴스 만들기
MailMessage message = new MailMessage();
// 메시지 제목, Html 본문 및 보낸 사람 정보 설정
message.Subject = "New message created by Aspose.Email for .NET";
message.HtmlBody = "<b>This line is in bold.</b> <br/> <br/>" + "<font color=blue>This line is in blue color</font>";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
// 받는 사람 및 참조 받는 사람에 추가
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));
// EML/EMLX/MSG/MHTML 형식으로 메시지 저장
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);
C#에서 특정 인코딩을 사용하여 Outlook 전자 메일 만들기
원하는 인코딩 표준을 지정하여 브라우저나 이메일 애플리케이션에 이메일 본문의 문자를 해석하는 방법을 알릴 수도 있습니다. 이를 위해 MailMessage.BodyEncoding 속성이 사용됩니다. 다음 코드 샘플은 C#을 사용하여 Outlook 전자 메일을 만들 때 본문 인코딩을 설정하는 방법을 보여줍니다.
// MailMessage 클래스의 새 인스턴스 만들기
MailMessage message = new MailMessage();
// 메시지 제목, Html 본문, 보낸 사람, 받는 사람 정보 설정
message.Subject = "New message created by Aspose.Email for .NET";
message.HtmlBody = "<b>This line is in bold.</b> <br/> <br/>" + "<font color=blue>This line is in blue color</font>";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
// 인코딩 지정
message.BodyEncoding = Encoding.ASCII;
// EML/EMLX/MSG/MHTML 형식으로 메시지 저장
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);
C#에서 Outlook 전자 메일을 동기 또는 비동기로 보내기
이제 전자 메일 메시지를 만든 후에는 받는 사람에게 동기 또는 비동기로 보낼 수 있습니다. SmtpClient 클래스를 사용하면 SMTP(Simple Mail Transfer Protocol)를 사용하여 Outlook 전자 메일 메시지를 보낼 수 있습니다. 다음은 .NET용 Aspose.Email을 사용하여 C#으로 이메일을 보내는 단계입니다.
- MailMessage 클래스를 사용하여 전자 메일 메시지를 만들거나 로드합니다.
- SmtpClient 클래스의 인스턴스를 만들고 호스트, 사용자 이름, 암호 및 포트 번호를 설정합니다.
- SmtpClient.Send 또는 SmtpClient.SendAsync 메서드를 각각 사용하여 동기식 또는 비동기식으로 이메일을 보냅니다.
C#에서 Outlook 전자 메일을 동기적으로 보내기
// MailMessage 인스턴스를 만듭니다. 새 메시지를 생성하거나 이미 생성된 메시지 파일(eml, msg 등)을 로드할 수 있습니다.
MailMessage msg = MailMessage.Load("EmailMessage.msg");
// SmtpClient 클래스의 인스턴스 만들기
SmtpClient client = new SmtpClient();
// 메일링 호스트, 사용자 이름, 비밀번호, 포트 번호 및 보안 옵션을 지정합니다.
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
try
{
// 이 이메일 보내기
client.Send(msg);
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
C#에서 Outlook 이메일을 비동기식으로 보내기
// MailMessage 인스턴스를 만듭니다. 새 메시지를 생성하거나 이미 생성된 메시지 파일(eml, msg 등)을 로드할 수 있습니다.
MailMessage msg = MailMessage.Load("EmailMessage.msg");
// SmtpClient 클래스의 인스턴스 만들기
SmtpClient client = new SmtpClient();
// 메일링 호스트, 사용자 이름, 비밀번호, 포트 번호 및 보안 옵션을 지정합니다.
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
// 메일링 호스트, 사용자 이름, 비밀번호, 포트 번호 및 보안 옵션을 지정합니다.
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
// 메시지 보내기
client.SendAsync(msg);
Console.WriteLine("Sending message...");
msg.Dispose();
C#에서 대량 이메일 보내기
이메일을 대량으로 생성하고 보낼 수도 있습니다. MailMessageCollection 클래스는 보내려는 이메일 메시지 모음을 포함하는 데 사용됩니다. 다음 코드 샘플은 C#에서 대량 이메일을 보내는 방법을 보여줍니다.
// SmtpClient 생성 및 서버, 포트, 사용자 이름 및 암호 지정
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");
// MailMessage 클래스의 인스턴스를 만들고 To, From, Subject 및 Message를 지정합니다.
MailMessage message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
MailMessage message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
MailMessage message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");
// MailMessageCollection의 인스턴스를 만들고 여기에 이메일 메시지를 추가합니다.
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.Add(message1);
manyMsg.Add(message2);
manyMsg.Add(message3);
try
{
// 메시지 보내기
client.Send(manyMsg);
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
라이브 데모
결론
이 문서에서는 C#에서 Outlook 전자 메일을 만드는 방법을 배웠습니다. 또한 .NET 애플리케이션 내에서 동기식 또는 비동기식으로 이메일을 보내는 방법을 살펴보았습니다. API에 대한 자세한 내용은 Aspose.Email for .NET의 문서를 참조하십시오.