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

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


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


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
댓글 알림
나의얼굴