Python으로 이메일을 보내고 예약하는 방법
15910 단어 hickorypythontutorialscheduling
이 자습서에서는 모든 작업을 수행하는 방법과 올바르게 수행하는 방법을 배우게 됩니다!
Gmail 구성
먼저 Python과 작동하도록 Gmail을 구성해야 합니다...
Google 계정에 로그인하고 다음으로 이동합니다. https://myaccount.google.com/
왼쪽 사이드바에서 보안을 찾아 클릭합니다.
아래로 스크롤하여 "보안 수준이 낮은 앱 액세스"패널에서 "액세스 켜기"를 클릭합니다.
토글 뒤집기:
Google은 아마도 "중요 보안 경고"에 대한 위협적인 이메일을 보낼 것입니다.
비밀 관리
Google은 여러분이 Python에 이메일과 비밀번호를 제공할 것이라는 것을 알고 있기 때문에 지금 당황하고 있습니다. 자격 증명을 일반 텍스트로 Python 스크립트에 복사하여 붙여넣으면 문제가 발생할 수 있습니다! 그러나 당신은 그렇게 하지 않을 것입니다... 당신은 당신의 비밀을 올바른 방법으로 관리할 것입니다.
새 디렉토리를 만들고 그 안에
cd
:mkdir email-tut
cd email-tut
텍스트 편집기를 열고
.env
파일을 이메일과 비밀번호로 방금 만든 디렉토리에 저장합니다.[email protected]
GMAIL_PASSWORD=Sup3r$ecretP@assW0rd!
자격 증명을 Python 외부에 저장했기 때문에 이 파일
.gitignore
을 사용할 수 있으므로.env
저장소를 Github에 업로드할 때 비밀번호가 노출되지 않습니다!이제
emailbot.py
디렉토리 내(email-tut
바로 옆)에 .env
라는 Python 스크립트를 생성하고 다음으로 채울 수 있습니다.import os
from dotenv import load_dotenv
load_dotenv(".env")
SENDER = os.environ.get("GMAIL_USER")
PASSWORD = os.environ.get("GMAIL_PASSWORD")
python-dotenv 패키지의
load_dotenv
기능을 사용하면 비밀을 안전하게 가져올 수 있습니다.표준 라이브러리로 이메일을 보내려면 다음 가져오기 및 편의 기능이 필요합니다.
from email.message import EmailMessage
import smtplib
def send_email(recipient, subject, body):
msg = EmailMessage()
msg.set_content(body)
msg["Subject"] = subject
msg["From"] = SENDER
msg["To"] = recipient
server = smtplib.SMTP_SSL("smtp.gmail.com", 465)
server.login(SENDER, PASSWORD)
server.send_message(msg)
server.quit()
함수를 호출하면 이메일이 발송됩니다.
send_email("[email protected]", subject="test", body="test")
전체 Python 스크립트를 저장합니다.
from email.message import EmailMessage
import smtplib
import os
from dotenv import load_dotenv
load_dotenv(".env")
SENDER = os.environ.get("GMAIL_USER")
PASSWORD = os.environ.get("GMAIL_PASSWORD")
def send_email(recipient, subject, body):
msg = EmailMessage()
msg.set_content(body)
msg["Subject"] = subject
msg["From"] = SENDER
msg["To"] = recipient
server = smtplib.SMTP_SSL("smtp.gmail.com", 465)
server.login(SENDER, PASSWORD)
server.send_message(msg)
server.quit()
send_email("[email protected]", subject="test", body="test")
그리고 명령줄에서 테스트하여 작동하는지 확인합니다.
python emailbot.py
"테스트"만 보내는 것은 약간 보행자입니다. 영감을 주는 스크립트로 스크립트를 꾸밀 수 있습니다quotes.
from quote import quote
import random
quotes = quote("William Shakespeare", limit=50)
body = random.sample(quotes, k=1)[0]['quote']
send_email("[email protected]", subject="Quote of the Day", body=body)
스크립트를 저장하고 명령줄에서 다시 호출하여 아무것도 망치지 않았는지 확인하세요 😉
배송 예약
작고 귀여운 셰익스피어식 이메일 봇이 작동하기를 바라며 이제 이 봇이 매일 오전 9시에 인용문을 보내도록 예약하고 싶을 것입니다. 이 설치를 수행하려면hickory:
pip install hickory
스크립트 인수로
hickory schedule
를 사용하여 명령줄에서 emailbot.py
를 호출합니다.hickory schedule emailbot.py --every=day@9:00am
그리고 그것은 문자 그대로입니다!
일정 상태를 확인하려면 다음과 같이 할 수 있습니다.
hickory status
# ID FILE STATE RUNS
# ea6b74 emailbot.py waiting 0
일정을 죽이려면 다음을 수행하십시오.
hickory kill emailbot.py
즐거운 이메일 보내세요!
요약: 전체 스크립트:
from email.message import EmailMessage
import smtplib
import os
import random
from dotenv import load_dotenv
from quote import quote
load_dotenv(".env")
SENDER = os.environ.get("GMAIL_USER")
PASSWORD = os.environ.get("GMAIL_PASSWORD")
def send_email(recipient, subject, body):
msg = EmailMessage()
msg.set_content(body)
msg["Subject"] = subject
msg["From"] = SENDER
msg["To"] = recipient
server = smtplib.SMTP_SSL("smtp.gmail.com", 465)
server.login(SENDER, PASSWORD)
server.send_message(msg)
server.quit()
quotes = quote("William Shakespeare", limit=50)
body = random.sample(quotes, k=1)[0]['quote']
send_email("[email protected]", subject="Quote of the Day", body=body)
Reference
이 문제에 관하여(Python으로 이메일을 보내고 예약하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/maxhumber/how-to-send-and-schedule-emails-with-python-dnb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)