본문 바로가기
Programming/.NET

[.NET] Google Gmail SMTP 설정 방법 & 전송 기능

by 째스터 2022. 11. 7.
728x90

사이드 프로젝트에 이메일 전송 기능을 구현해야 하는 상황이다.
SMTP 서버를 구축하기는 귀찮고 돈이 들어가서
하루에 2,000개 정도면 충분할 것 같아서 Gmail SMTP를 사용하기로 했다.
참고 링크

예전에 이용했을 때와 많이 달라져서 달라진 부분이 있는 것 같다.

- Gmail IMAP access 설정은 사용으로 바꾸지 않아도 동작한다.
Gmail > 설정 > 전달 및 POP/IAMP > IMAP 액세스
Gmail > Settings > Forwarding and POP/IAMP > IMAP access

- "보안 수준이 낮은 앱 및 Google 계정 사용 설정"은 더 이상 지원하지 않는다(참고).

1. Gmail SMTP 설정 방법

a. Google 계정 페이지로 이동한다(https://myaccount.google.com/).

b. 보안 탭 > Google에 로그인 섹션을 찾는다.

좌측 google 로고 부근에 opacity가 조금 있네ㅋㅋ

c. 앱 비밀번호를 생성한다.
반드시 2단계 인증을 설정해야 앱 비밀번호 기능을 사용할 수 있다.
나중에 2단계 인증을 해제하면 앱 비밀번호도 초기화 되어 사용할 수 없다.

위 모자이크 된 부분에 비밀번호가 생성된다.

2. 소스코드 구현(C# SmtpClient 사용)

MailMessage newMail = new();

// 이메일을 보내는 사람 이메일 주소와 이름(From)
newMail.From = new MailAddress(_configuration["EmailSenderAddress"], _configuration["EmailSenderName"]);

// 이메일을 받을 사람 이메일(To)
newMail.To.Add("jj2726@gmail.com");

newMail.IsBodyHtml = true;
newMail.Subject = "My First Email";
newMail.Body = "<h1> This is my first Templated Email in C# </h1>";

// smtp.gmail.com
SmtpClient client = new("smtp.gmail.com", 587)
{
    // GmailUser: Gmail 계정(ex. jj2726@gmail.com)
    // GmailPassword: 위에서 생성된 앱 비밀번호
    Credentials = new NetworkCredential(_configuration["GmailUser"], _configuration["GmailPassword"]),
    EnableSsl = true,
};

client.Send(newMail);

 

728x90

댓글