반원 블로그

[파이썬 레시피 - 웹 활용 입문편] 03. 메일 - A. 구글 메일 보내기 본문

2018~/파이선 레시피 웹 활용 입문편

[파이썬 레시피 - 웹 활용 입문편] 03. 메일 - A. 구글 메일 보내기

반원_SemiCircle 2019. 6. 15. 15:26

구글 메일 서버

메일 서버를 이용하려면 서버명과 포트 및 보안방식을 알아야 합니다. https://support.google.com/mail/answer/7126229?hl=ko

여기서는 다음 정보를 활용하겠습니다.

  • 서버명 : smtp.gmail.com
  • 인증 필요: 예
  • TLS/STARTTLS용 포트: 587

메일 보내기

메일을 보내려면 SMTP(Simple Mail Transfer Protocol)과 MIME(Multipurpose Internet Mail Extensions)를 이용해야합니다. 단순히 영어 내용만 있는 메일을 전송할 때는 SMTP만 이용하면 됩니다. 하지만 다국어 지원, 파일 첨부 등의 기능이 현재는 당연하게 사용되므로 MIME로 전송할 메일(또는 메시지)를 만들고 SMTP를 통해 전송합니다.

import smtplib
from email.mime.text import MIMEText

sendEmail = "구글ID@gmail.com"
recvEmail = "받는 이메일"
password = "구글 비밀번호"

smtpName = "smtp.gmail.com" #smtp 서버 주소
smtpPort = 587 #smtp 포트 번호

text = "매일 내용"
msg = MIMEText(text) #MIMEText(text , _charset = "utf8")

msg['Subject'] ="이것은 메일제목"
msg['From'] = sendEmail
msg['To'] = recvEmail
print(msg.as_string())

s=smtplib.SMTP( smtpName , smtpPort ) #메일 서버 연결
s.starttls() #TLS 보안 처리
s.login( sendEmail , password ) #로그인
s.sendmail( sendEmail, recvEmail, msg.as_string() ) #메일 전송, 문자열로 변환해야 합니다.
s.close() #smtp 서버 연결을 종료합니다.

아마도 에러 날 거에요.

코드는 문제 없습니다. 기본적으로 계정 보안 설정에서 이런 식의 접근을 막아놓기 때문입니다.

[구글 계정 설정] - [보안] - [보안 수준 낮은앱 액세스] - [허용]을 해주면 위 코드가 실행됩니다.

Comments