
앞에 스케쥴을 안썼을경우는 메일전송이 잘되었습니다. 그런데, 스케쥴을 넣어 전송시 오류가 나네요.
while True:
schedule.run_pending() <----요기서 빨간색으로 나오네요.
time.sleep(1)
작성한 코드 및 에러 메세지
import openpyxl
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import pytz
from datetime import datetime
import schedule
import time
def send_email():
# Gmail SMTP 서버 설정
smtp_server = 'smtp.gmail.com'
smtp_port = 587
smtp_username = 'a@gmail.com' # <-- 제 계정
smtp_password = '****' # <-- 제 앱비밀번호
# Excel 파일에서 이름과 이메일 추출
wb = openpyxl.load_workbook('customer_data_test.xlsx')
ws = wb['test_name_email']
name_list = []
email_list = []
for row in ws.iter_rows(min_row=2, values_only=True):
name = row[0]
email = row[1]
name_list.append(name)
email_list.append(email)
# Gmail 서버 연결
with smtplib.SMTP(smtp_server, smtp_port) as smtp:
smtp.starttls()
smtp.login(smtp_username, smtp_password)
for name, email in zip(name_list, email_list):
# 메일 제목, 본문 내용 작성
mail_subject = f'[{name}] 자그마한 선물을 받으세요!'
mail_body = f'안녕하세요 {name}님,\n\n저희 앱을 이용해주셔서 감사합니다. {name}님이 우리 앱에 10번 이상 로그인하시면 자그마한 선물을 드립니다! 하루에 최대 1번 로그인 가능합니다. 많은 이용 부탁드립니다.\n\n감사합니다.\n\n- salemale 팀'
# 메일 생성
message = MIMEMultipart()
message['From'] = smtp_username
message['To'] = email
message['Subject'] = mail_subject
# 메일 본문 추가
message.attach(MIMEText(mail_body))
# 메일 전송
smtp.send_message(message)
# 대한민국 서울 시간대 설정
seoul_timezone = pytz.timezone('Asia/Seoul')
def sunday_email():
now = datetime.now(seoul_timezone)
if now.strftime("%A") == "Sunday" and now.strftime("%H:%M") == "10:04": send_email()
# 스케쥴러 설정
schedule.every().minutes.do(sunday_email)
while True:
schedule.run_pending()
time.sleep(1)
-----------> 오류내역
SMTPAuthenticationError Traceback (most recent call last)
<ipython-input-28-8b4059fc5833> in <cell line: 63>()
62
63 while True:
---> 64 schedule.run_pending()
65 time.sleep(1)
7 frames
/usr/lib/python3.10/smtplib.py in auth(self, mechanism, authobject, initial_response_ok)
660 if code in (235, 503):
661 return (code, resp)
--> 662 raise SMTPAuthenticationError(code, resp)
663
664 def auth_cram_md5(self, challenge=None):
SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. For more information, go to\n5.7.8 https://support.google.com/mail/?p=BadCredentials a2-20020a927f02000000b00364228350d4sm941926ild.84 - gsmtp')
