반응형
메일은 사용자에게 알람부터, 사용자에게 정보 전달까지 다양하게 사용할 수 있는 의사 전달 도구로써,
프로그램으로 메일을 보내는 기능을 일반적인 메일 제공 업체인 Naver, Daum, Google을 통해 어떻게 가능한 지 알아보도록 하자. 각 메일 제공 업체별로 메일을 전달하기 전에 구성해야 하는 옵션이 있는데 구글부터 알아보겠다.
업체 | 주소 | Port | 특이사항 |
다음 | smtp.daum.net | 465 | IMAP/POP 활성화 |
카카오 | smtp.kakao.com | 465 | IMAP/POP 활성화 |
네이버 | smtp.naver.com | 587 | IMAP/POP 활성화 |
구글 | smtp.gmail.com | 587 | 2차인증 해제, 낮은 수준 앱 |
구글 - 보안 수준이 낮은 앱의 액세스 활성화
구글은 2차인증과 보안 수준이 낮은 앱(메일 전송이 여기에 포함)의 엑세스가 필요하다.
기본적으로는 아래 그림과 같이 비활성화 되어 있다. 이를 활성화 하주기 바란다.
바로가기 링크 - myaccount.google.com/lesssecureapps
그리고 추가로, 2차인증을 설정한 경우 이 역시 myaccount.google.com/security 에서 해제를 하여야 정상적으로 메일 전달에 사용할 수 있다.
Naver, Daum - IMAP/POP3 설정 활성화
네이버와 다음은 국내 회사답게 비슷한 구성을 가지고 있다. 기본적으로 과거 많이 사용되던, IMAP/POP3 서비스 포트가 있는데 이를 활성화 해주면, SMTP 함께 사용이 가능해 진다.
MailMessage notificationEmail = new MailMessage();
// 메일 제목
notificationEmail.Subject = "Email TEST";
// 메일 본문이 HTML 인지
notificationEmail.IsBodyHtml = true;
// 메일 본문
notificationEmail.Body = "HTML Email<br/>";
// 보내는 사람
notificationEmail.From = new MailAddress("aaaa@naver.com");
// 받는 사람
notificationEmail.To.Add(new MailAddress("bbbb@msn.com"));
// 숨은 참조
notificationEmail.Bcc.Add(new MailAddress("ccc@msn.com"));
// SMTP 주소
SmtpClient emailClient = new SmtpClient("smtp.naver.com", 587);
// SSL 설정 및 ID/PAssword 설정
emailClient.DeliveryMethod = SmtpDeliveryMethod.Network;
emailClient.EnableSsl = true;
emailClient.Credentials = new System.Net.NetworkCredential(아이디, 비밀번호);
emailClient.UseDefaultCredentials = false;
// 전송
emailClient.Send(notificationEmail);
다만 다음과 카카오를 사용하기 위해서는 Implicit SSL 방식을 사용해야 하며 이를 사용하기 위해서 별도의 Nuget을 설치하고 진행하여야 한다.
코드 사용은 크게 달라지지 않는다.
var notificationEmail = new MimeMailMessage();
// 보내는 사람
notificationEmail.From = new MimeMailAddress("ccc@kakao.com");
// 받는 사람
notificationEmail.To.Add("aaaa@naver.com");
// 메일 제목
notificationEmail.Subject = "제목";
// 메일 본문
notificationEmail.Body = "TEST";
// SMTP 설정
var emailClient = new MimeMailer("smtp.kakao.com", 465)
emailClient.User = 아이디;
emailClient.Password = 비밀번호;
emailClient.SslType = SslMode.Ssl;
emailClient.AuthenticationMode = AuthenticationType.Base64;
// 메일 전송
emailClient.SendMailAsync(mailMessage);
반응형
'.Net' 카테고리의 다른 글
C#/.NET - HTTP Keep-alive 사용하기 (0) | 2022.04.14 |
---|---|
.NET - HTML 특정 문자열 추출, DocumentNode.SelectNodes 검색하기 (0) | 2022.04.05 |
WxTCmd - Windows 10 Timeline Artifact Tool 한글 깨짐 해결 (0) | 2021.03.04 |
텍스트 - 콘솔 글씨 꾸미기 (0) | 2021.02.10 |
.NET - Audit.log Unix FileTime 계산하기 (0) | 2021.01.18 |