SMTP란?
Simple Mail Transfer Protocol
보내는 사람이 이메일을 전송버튼을 누르면
보내는 사람의 e-mail 서버가 이메일을 받아
인터넷으로 받는 사람의 e-mail 서버로 전송해
받는 사람이 이메일을 열어보는
모든 과정의 규칙을 이야기한다.
1. SMTP 주소
smtp주소는 아래와 같다.
구글 계정이 보안상의 이유로 아이디와 비밀번호만으로 자동 로그인이 불가하므로,
오늘은 네이버로 파이썬을 이용한 이메일 보내기를 해보겠다.
daum | smtp.daum.net | |
naver | smtp.naver.com | port =587 |
보안상 이유로 X | ||
Hotmail | smtp.live.com | |
Outlook | outlook.office365.com | |
Yahoo | smtp.mail.yahoo.com |
2. Naver 보안설정 바꾸기
1) 네이버> 메일환경> POP 3/IMAP 설정> POP3/SMTP사용함으로 설정
2) 네이버ID>보안설정>기본보안설정>2단계 인증>해제
만약 2단계 인증이 되어 있다면 해제한다.
3. 파이썬 라이브러리 smtplib
1) smtplit.SMTP(smtp주소, port)
smtp주소: smtp.naver.com
port : 587
import smtplib
connection = smtplib.SMTP("smtp.naver.com", port=587)
2) starttls()
TLS?
Transport Layer Security
이메일 서버와의 연결을 안전하게 만드는 것으로,
이메일 전송 과정에서 정보가 누출되지 않도록
메시지를 암호화하는 것을 말한다.
connection.starttls()
3) login(user=?, password=?)
내 계정에 로그인한다.
email_add = "OliviaCodingSchool@naver.com"
password = "1234"
connection.login(user=email_add, password=password)
4) MIMEText
메일 본문을 쓴다.
MIMEtext(내용)
from: 보내는 사람
to: 받는 사람
subject: 제목
from email.mime.text import MIMEText
msg = MIMEText('내용: 본문 테스트 메시지\n한 줄 띄기\n도 됩니다')
msg['From'] = "OliviaCodingSchool@naver.com"
msg['Subject'] = '제목: 메일 발송 시험'
msg['To'] = "oliviacodingschool@gmail.com"
4) sendemail(from_addr=?, to_addr=?, msg=?)
보내는 사람과 받는 사람의 이메일 주소를 적는다.
5) as_string()
MIMEtext 대상을 str(문자열)로 바꾼다.
connection.sendmail(from_addr="Olivia@naver.com",
to_addrs="oliviacodingschool@gmail.com",
msg=msg.as_string())
5) close()
모두 완료했다면 파일을 닫는다.
6) with 키워드
with 키워드를 사용하여, 모두 완료했다면 자동으로 파일을 닫는다.
import smtplib
from email.mime.text import MIMEText
email_add = "Olivia@naver.com"
password = "1234"
with smtplib.SMTP("smtp.naver.com", port=587) as connection:
connection.starttls()
connection.login(user="Olivia", password='1234')
msg = MIMEText('내용:본문 테스트 메시지\nhi!\nhello!')
msg['From'] = "rufreedom@naver.com"
msg['Subject'] = '제목: 메일 발송 시험'
msg['To'] = "oliviacodingschool@gmail.com"
connection.sendmail(from_addr="Olivia@naver.com",
to_addrs="odingschool@gmail.com",
msg=msg.as_string())
참고사항
* 구글은 보안을 아래와 같이 완화해도 smtp 기능을 사용할 수 없다.
구글은 사용자 이름, 비밀번호만 사용하여 구글 계정에 로그인하도록 요청하는 기능을 더이상 지원하지 않기로했기 때문이다.
따라서,
보내는 주소는 구글이 아닌 네이버, 다음을 이용하면 된다!
받는 사람의 주소는 어떤 계정이든 상관없다.
'파이썬 > 파이썬(python) 중급' 카테고리의 다른 글
[32-3 파이썬] 파이썬으로 긍정 명언 이메일 보내기 (3) | 2022.09.25 |
---|---|
[32-2 파이썬] datetime 모듈, now(), weekday(), 요일 (1) | 2022.09.25 |
[31-4 파이썬] tkinter Flash 카드 만들기 (0) | 2022.09.25 |
[31-3 파이썬] pandas, to_dict(), orient, record (1) | 2022.09.24 |
[31-2 파이썬] tkinter 위치, 정렬 anchor, justify (0) | 2022.09.24 |