커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
앞에 질문에서 해결버튼을 잘못눌러서 다시 질문 드립니다. (스케쥴러 돌릴때 오류가 나요. 샘 코드로 그대로 해도 마찬가지예요..)
[왕초보] ChatGPT 300% 활용하기 v0
4주차
북마크
신*숙
댓글
22
추천
0
조회수
12
조회수
12
답변 완료

앞에 스케쥴을 안썼을경우는 메일전송이 잘되었습니다. 그런데, 스케쥴을 넣어 전송시 오류가 나네요.


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')



취소
 공유
취소
댓글 0
댓글 알림
나의얼굴