SMTP란 Simple Mail Transfer Protocol이다.
이러한 SMTP는 이메일을 메일 서버에 보내주고 다음 메일 서버로 전달하여 다른 사람에게 보내도록 하는 규칙을 가지고 있다.
이렇게 처리하는 일은 python의 smtplib에서도 할 수 있다.
1. smtplib을 import 하고 어느 이메일 계정으로 보낼지에 대한 이메일과 패스워드를 변수에 할당한다. 그냥 가독성을 높이기 위해서며 코드에서 쉽게 이메일과 패스워드를 변경하기 위해서이다.
import smtplib
my_email = "youremail@gmail.com"
password="aab12341234"
2. smtplib 모듈 안에 있는 SMTP 객체를 생성한다.
connection = smtplib.SMTP("smtp.gmail.com")
3. 전송하는 과정에서 email server와의 connection을 안전을 보장해주기 위해 starttls 메소드를 사용한다.
connection.starttls()
4. connection에서 login메소드를 이용하여 email server와의 연결을 하고, sendmail 메소드를 이용하여 어느 이메일에 보낼지, 무슨 메시지를 보낼지에 대해 쓴다.
connection.sendmail(
from_addr=my_email,
to_addrs="youremail@gmail.com",
msg="Subject:It's me.\n\nDid you check this email?")
#이메일의 제목을 설정하려면 Subject:를 사용하고, 본문 내용과 분리하기 위해서는 \n\n을 적으면 된다.
이렇게 하면 쉽게 메시지를 보낼 수 있다. 하지만, Gmail에서 보내려면 google 계정의 보안 수준을 낮춰야 한다.
이 코드를 실행하면 오류가 뜰 것이기 때문에, google 계정 관리를 들어가 '보안 수준이 낮은 앱의 액세스'의 허용을 체크 해준다.

하지만, 2022년 5월 30일부터는 이 설정을 사용할 수가 없다 하여 앞으로는 Python으로 메일을 보낼 때에는 다른 메일을 사용해야 할 것 같다. 자세히 알아보기를 눌러보니 5월 30일부터 이 설정을 사용하려면 많은 준비를 해야하는 것 같았다. 귀찮음을 감수하느니 차라리 gmail 안 쓰지..
이 라이브러리를 쓸 일은 뭐 스팸 메일이나 고객 관리를 위한 메일을 보내기 위해서 쓰지 않을까?
String 라이브러리를 이용하여 텍스트 파일 안에 있는 고객들 이름만 바꿔서 보내거나 혹은 Pandas 라이브러리에서 고객들 정보가 들은 csv파일을 읽은 후에 고객들의 등급에 따라서 다른 이메일을 보낼 때 유용할 것 같았다. 하지만 회사에서 쓴다면 회사 이메일 서버를 쓰거나 할 것 같아서 좀 더 보내기가 수월할 것 같다.
'조열심 카테고리 > Python 이것저것' 카테고리의 다른 글
| [Python] Otaku-qutoes program (0) | 2022.05.23 |
|---|---|
| [Python] smtplib과 datetime을 이용하여 생일 관련 템플릿 메일 보내기 (0) | 2022.05.23 |
| [Python] 자신만의 Error 만들기 (0) | 2022.05.11 |
| [Python] 제너레이터 내포 표기 (0) | 2022.05.11 |
| [Python] Iterator, Generator(이터레이터, 제너레이터) (0) | 2022.01.05 |