EmailContentGenerator 클래스를 활용한 이메일 템플릿 생성 방법
1. 개요
자동화된 이메일을 발송할 때, 이메일 본문을 일관된 형식으로 생성하는 것이 중요합니다.
.NET 프로젝트에서 이메일 본문을 쉽게 생성할 수 있도록, EmailContentGenerator
클래스를 활용하여 동적으로 이메일 템플릿을 생성하는 방법을 설명합니다.
이 글에서는 이메일 본문을 생성하는 메서드인 GenerateSampleEmail
을 구현하고, 이를 사용하여 이메일 제목과 본문을 출력하는 방법을 소개합니다.
2. EmailContentGenerator 클래스 구현
이메일 본문을 생성하는 유틸리티 클래스인 EmailContentGenerator
를 정의하고,
이메일 제목과 본문을 반환하는 GenerateSampleEmail
메서드를 추가합니다.
코드 구현
아래 코드에서는 이메일 수신자 이름, 이메일 주소, 사용자 정의 메시지를 받아서 HTML 형식의 이메일 본문을 생성하는 메서드를 포함하고 있습니다.
using System.Net;
namespace All.Utilities
{
/// <summary>
/// 이메일 본문을 생성하는 유틸리티 클래스입니다.
/// 다양한 이메일 유형(문서 초대, 알림 등)에 대한 템플릿을 제공합니다.
/// </summary>
public class EmailContentGenerator
{
/// <summary>
/// 샘플 이메일 본문을 생성하는 메서드입니다.
/// 이메일 제목과 본문을 반환하는 예제용 템플릿입니다.
/// </summary>
/// <param name="recipientName">수신자 이름</param>
/// <param name="emailAddress">수신자 이메일 주소</param>
/// <param name="customMessage">사용자 정의 메시지</param>
/// <returns>이메일 제목(subject)과 본문(body)</returns>
public static (string subject, string body) GenerateSampleEmail(string recipientName, string emailAddress, string customMessage)
{
string subject = "Sample Email Notification";
string encodedRecipientName = WebUtility.HtmlEncode(recipientName);
string encodedEmailAddress = WebUtility.HtmlEncode(emailAddress);
string encodedMessage = WebUtility.HtmlEncode(customMessage);
string body = $@"
<p>Hello {encodedRecipientName},</p>
<p>This is a sample email template.</p>
<p>{encodedMessage}</p>
<p>If you have any questions, please contact us at <a href='mailto:{encodedEmailAddress}'>{encodedEmailAddress}</a>.</p>
<p>Best Regards,<br/>Your Company</p>";
return (subject, body);
}
}
}
3. EmailContentGenerator 클래스 사용 방법
이제 GenerateSampleEmail
메서드를 사용하여 이메일 제목과 본문을 생성하는 방법을 살펴보겠습니다.
아래 코드에서는 recipientName
, emailAddress
, customMessage
값을 전달하여 이메일 템플릿을 생성하고, 이를 출력하는 예제를 제공합니다.
사용 예제
class Program
{
static void Main()
{
string recipientName = "홍길동";
string emailAddress = "hong@visualacademy.com";
string customMessage = "가입해 주셔서 감사합니다. 궁금한 점이 있으면 언제든지 문의해 주세요.";
var (subject, body) = EmailContentGenerator.GenerateSampleEmail(recipientName, emailAddress, customMessage);
Console.WriteLine("Email Subject:");
Console.WriteLine(subject);
Console.WriteLine();
Console.WriteLine("Email Body:");
Console.WriteLine(body);
}
}
4. 실행 결과
위 코드를 실행하면 아래와 같은 이메일 제목과 본문이 출력됩니다.
출력 예시
Email Subject:
Sample Email Notification
Email Body:
<p>Hello 홍길동,</p>
<p>This is a sample email template.</p>
<p>가입해 주셔서 감사합니다. 궁금한 점이 있으면 언제든지 문의해 주세요.</p>
<p>If you have any questions, please contact us at <a href='mailto:hong@visualacademy.com'>hong@visualacademy.com</a>.</p>
<p>Best Regards,<br/>Your Company</p>
5. 정리
EmailContentGenerator
클래스는 이메일 제목과 본문을 일관된 형식으로 생성하는 데 유용한 유틸리티 클래스입니다.
이메일 본문을 HTML 형식으로 제공하여, 다양한 이메일 템플릿을 쉽게 관리하고 확장할 수 있습니다.
이와 같은 방식으로 이메일을 동적으로 생성하면, 시스템에서 여러 유형의 이메일을 효율적으로 관리할 수 있습니다.