웹(Web)

naver gmail 등 smtp설정 방법

공.대.남 2023. 9. 27. 09:27
반응형

 

안녕하세요 공대남입니다.

오늘은 웹이나 앱등에서 알람등이 발생시에 메일로 알람을 전송하기 위해 gmail, naver 등의 smtp서버를 이용하는 법을 알아보겠습니다.

 

먼저 gmail 관련 설정입니다.

 

■ Google Gmail SMTP 설정 방법

1. Gmail 설정 화면으로 이동

  • 설정(톱니바퀴 모양) 버튼 클릭
  • 모든 설정 보기 버튼 클릭

2. IMAP 엑세스 상태를 [IMAP 사용] 으로 수정

  • [전달 및 POP/IMAP] 탭으로 이동
  • IMAP 엑세스 상태를 [IMAP 사용] 으로 수정
  • 변경사항 저장 버튼 클릭

3. Google 계정 보안 설정 화면으로 이동

  • Google 계정 관리 화면으로 이동
  • [보안] 탭으로 이동
 

Google 계정

Google은 사용자마다 원하는 개인정보 보호 설정이 다르다는 사실을 인지하고 있습니다. 그래서 Google 계정에서는 사용이 간편한 컨트롤과 개인정보 보호 진단 같은 도구를 제공합니다. 이런 도구

www.google.com

4. Google에 로그인 [2단계 인증] 사용

  • [2단계 인증] 클릭

  • [시작하기] 버튼 클릭

  • 사용자의 전화번호 입력
  • 코드를 받을 방식 선택
  • [다음] 버튼 클릭

  • 인증코드 입력
  • [다음] 버튼 클릭

  • [사용] 버튼 클릭

5. Google에 로그인에 추가된 [앱 비밀번호] 생성

  • Google에 로그인 [앱 비밀번호] 클릭

  • 앱 선택에서 [기타(맞춤 이름)] 선택

  • 기기 이름을 사용자에 맞게 작성(*필자의 경우 GMAIL-SMTP)
  • [생성] 버튼 클릭

  • 자동 발급된 기기용 앱 비밀번호를 확인(* 비밀번호는 메일 발송시 필요하기 때문에 저장해둔다)
  • [확인] 버튼 클릭  


■ GO 언어에서 SMTP를 활용하여 메일 발송

  • 1 : 앱 비밀번호를 생성한 사용자의 이메일 주소
  • 2 : 앱 비밀번호
  • 3 : smtp.gmail.com [고정 값]
  • 4 : 발신자 주소
  • 5 : 수신자 주소 [복수 입력 가능]
  • 6 : 메일의 제목 
  • 7 : 메일의 형식을 지정할 수 있다. 예시로 html 본문을 발송하기 위해서 [Content-Type: text/html;\n] 로 설정하면 된다.
  • 8 : 메일의 본문
  • 9 : smtp.gmail.com:587 [고정 값]

 

다음은 naver smtp 설정방법입니다.

 

■  Naver SMTP 설정 방법

 

네이버 메일에 로그인후 아래쪽에 환경설정을 누르세요.

POP3/IMAP 설정을 선택하세요.

POP3/SMTP 설정 네모 칸과 같이 설정하면 됩니다.

 

IMAP/SMTP 설정에서

사용함 선택하세요.

 

 

네이버 SMTP 설정 방법입니다.

SMTP 서버 - smtp.naver.com

SMTP 포트 - 587

SMTP 포트 (SSL) - 465

비밀번호 - 네이버 로그인 비밀번호

 

 

이후 소스코드에 다음과 같이 smtp 설정 값을 추가하면 정상 전송되는 것을 확인할 수 있습니다.

소스 코드

func SendMail() {
	auth := smtp.PlainAuth("", "dj9034kr@gmail.com", "fsdajklfdslak", "smtp.gmail.com")
	from := "dj9034kr@gmail.com"
	to := []string{"richrobo@gmail.com"} // 복수 수신자 가능

	// 메시지 작성
	headerSubject := "Subject: [제목] 메일 테스트 발송\r\n"
	headerBlank := "\r\n"
	body := "[본문] 메일 테스트 발송"
	msg := []byte(headerSubject + headerBlank + body)

	// 메일 보내기
	err := smtp.SendMail("smtp.gmail.com:587", auth, from, to, msg)
	if err != nil {
		log.Fatalln("Error")
		return
	}
	log.Fatalln("Success")
}

 

728x90
반응형