본문 바로가기
.Net

.Net - naver, daum, google,kakao SMTP 메일 설정 및 보내기 Implicit SSL 포함

by 올엠 2022. 3. 25.
반응형

메일은 사용자에게 알람부터, 사용자에게 정보 전달까지 다양하게 사용할 수 있는 의사 전달 도구로써,

프로그램으로 메일을 보내는 기능을 일반적인 메일 제공 업체인 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

 

smtp를 사용하려면, 2차인증을 해서는 않된다.

그리고 추가로, 2차인증을 설정한 경우 이 역시 myaccount.google.com/security 에서 해제를 하여야 정상적으로 메일 전달에 사용할 수 있다.

 

Naver, Daum - IMAP/POP3 설정 활성화

네이버와 다음은 국내 회사답게 비슷한 구성을 가지고 있다. 기본적으로 과거 많이 사용되던, IMAP/POP3 서비스 포트가 있는데 이를 활성화 해주면, SMTP 함께 사용이 가능해 진다. 

네이버 화면
Daum 화면
카카오 화면, 다음과 똑같다..

 

    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);
반응형