이 블로그에서는 Outlook 전자 메일 메시지(MSG, EML, EMLX 또는 MHTML 포함)를 만들고 .NET 또는 .NET Core에서 C#을 사용하여 동기 또는 비동기로 전자 메일을 보내는 방법을 배웁니다.

C# 아웃룩 이메일 보내기

이메일은 메시지를 교환하고 문서, 이미지 또는 기타 유형의 파일과 같은 콘텐츠를 공유하는 주요 소스가 되었습니다. 이메일 사용 빈도는 중요한 알림이나 문서를 여러 엔티티와 공유하기 위한 온라인 시스템 내에서 더 많습니다. 이러한 경우 템플릿을 준비하고 여러 이해 관계자에게 수동으로 이메일을 보내는 것은 시간이 많이 걸리고 바쁜 작업이 될 수 있습니다.

여기에 전자 메일을 원활하게 만들고 보낼 수 있는 전자 메일 자동화 서비스가 필요합니다. 따라서 이 기사에서는 널리 사용되는 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의 문서를 참조하십시오.

또한보십시오