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에 로그인 섹션을 찾는다.
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
'Programming > .NET' 카테고리의 다른 글
[.NET] BenchmarkDotNet로 .NET 6 vs .NET 4.7.2 성능 비교 (0) | 2023.01.15 |
---|---|
[.NET Core] Custom Middleware의 Scoped lifetime 서비스 주입 (0) | 2023.01.03 |
[.NET Core] Razor 파일 코드 변동사항 바로 적용되도록 설정하기 (0) | 2022.10.26 |
[.NET Core] wwwroot 폴더 밖에 있는 file download (0) | 2022.10.19 |
MVC Controller HttpGet, HttpPost Attribute 동시 사용시 주의점 (0) | 2022.06.23 |
댓글