안녕하세요.
이번 글에서는 아주 간단하게, 공짜로 메일을 프로그램을 통해서 보낼 수 있는 방법을 공유드립니다.
일단 다음과 같이 파이썬 프로그램 코드를 작성합니다.
< 코드작성 >
import smtplib
from email.message import EmailMessage
# SMTP 세션생성
s = smtplib.SMTP('smtp.gmail.com', 587)
# 보안 TLS 시작
s.starttls()
# 로그인 & 인증
s.login("<보내려고하는 내 메일 계정>", "<내 계정 앱 비밀번호>")
# 보낼 메시지 지정
message = EmailMessage()
message['Subject'] = f"제목"
message['From'] = "<보내는 사람 메일 계정>"
message['To'] = "<받는 사람 메일 계정>"
message.set_content("본문")
# 메일전송
s.send_message(message)
# 메일전송세션 종료
s.quit()
그런 다음 약간의 준비가 더 필요합니다.
코드를 실행해보시면, 일반적으로는 다음 두 가지의 에러 메시지를 접하게 될 것입니다.
구글의 보안 정책 때문인데요, 평소에 보안관리를 철저하게 하신다면 조금 더 단계가 줄어들 수는 있습니다.
5.7.8 Username and Password not accepted.
For more information, go to\n5.7.8
https://support.google.com/mail/?p=BadCredentials'
5.7.9 Application-specific password required.
For more information, go to\n5.7.9
https://support.google.com/mail/?p=InvalidSecondFactor'
< 계정 보안 설정 >
5.7.8 에러메시지는 구글 보안 2단계 인증이 되어 있지 않고, 앱 비밀번호 설정이 되어 있지 않을 경우에 발생합니다.
해결하기 위해서는 구글 로그인 => 구글 계정 관리 => 보안으로 들어갑니다.
보안 => Google에 로그인하는 방법 : "2단계 인증 사용 여부"를 확인합니다.
"사용 중지되었습니다" 로 나온다면 사용하도록 설정해주시면 됩니다.
위처럼 되어있다면 전화번호 설정을 하고, OTP 나 PASS키 등을 설정해서 2단계 인증을 활성화해줍시다.
여기까지 진행 후에 다시 제일 위의 코드를 실행해봅시다. 아마 5.7.8 혹은 5.7.9 에러 메시지를 여전히 받을 수 있을 것입니다.
마지막으로 앱 비밀번호를 설정해줘야 합니다.
2단계 인증 설정을 해두셨다면, 에러메시지 5.7.8 은 잘못된 앱 비밀번호를 사용했을 경우 , 5.7.9는 본인 메일의 실제 비밀번호를 사용했을 때 볼 수 있습니다.
앱 비밀번호는 일반적으로 사용하는 것을 권장하는 방식이 아닌지라, 구글 계정 보안에서 버튼이 이제는 보이지 않습니다. (한국계정 기준)
로그인 된 상태에서 다음 주소 (https://myaccount.google.com/apppasswords) 를 직접 입력하면 앱 비밀번호를 설정할 수 있는 창이 열립니다.
이 상태에서 앱 이름을 적당히 적어주시고 "만들기"를 누르면 16자리 비밀번호를 생성해서 주게 됩니다.
당연히 이 비밀번호는 밖으로 노출되지 않도록 잘 관리를 해주시는게 좋겠습니다.
참고로, 2단계 인증을 한 번이라도 해지하게 되면 앱 비밀번호는 모두 삭제됩니다. 분명히 예전에 설정했는데 왜 안되지? 라는 생각이 드신다면 2단계 인증 여부를 다시 확인해보시기 바랍니다.
이제 이 앱 비밀번호를 가지고 제일 위의 코드를 실행해주면 정상적으로 메일을 받게 되는 것을 확인하실 수 있습니다.
오늘 내용은 여기까지입니다.
모두 행복한 코딩되세요~
'Toy' 카테고리의 다른 글
ChatGPT API (OpenAI API) 시작하기 (2) - C# 으로 튜토리얼 실행 (1) | 2024.08.18 |
---|---|
ChatGPT API (OpenAI API) 시작하기 (1) - 계정생성 (1) | 2024.08.11 |
네이버 책검색 API 이미지 크게 사용하기 (0) | 2024.07.21 |
Python 이용해서 Gmail로 메일 보내기 (2) (0) | 2024.07.14 |
댓글