본문 바로가기

개발하자

사용자 이름과 비밀번호만 허용하지 않는 구글의 정책 업데이트 후 파이썬을 사용하여 이메일을 보내는 방법은 무엇입니까?

반응형

사용자 이름과 비밀번호만 허용하지 않는 구글의 정책 업데이트 후 파이썬을 사용하여 이메일을 보내는 방법은 무엇입니까?

나는 파이썬을 사용하여 이메일을 보내는 방법을 배우려고 노력하고 있다. 내가 읽은 웹의 모든 튜토리얼은 Gmail을 사용하는 방법을 설명한다.

하지만, 2022년 5월 30일부터 (모든 사람이 그의 계정으로 원하는 것을 자유롭게 할 수 있음에도 불구하고) 구글은 다음과 같은 새로운 정책을 가지고 있다:

계정의 보안을 유지하기 위해 Google은 2022년 5월 30일부터 사용자의 사용자 이름과 암호만 묻는 타사 앱 또는 장치의 사용을 더 이상 지원하지 않습니다. Google 계정에 로그인합니다.

출처:

그리고 우리는 다음을 얻는다:

그래서 제 질문은 파이썬(다른 회사에 속한 이메일 계정 포함)을 사용하여 이메일을 보낼 수 있는 다른 방법이 있나요?

이메일을 보내는 기능은 다음과 같습니다:

def send_email_fct(filename, filepath, fromaddr, mdpfrom, toaddr):
"""" filename: file name to be sent with extension
     filepath: file path of the file to be sent
     fromaddr: sender email address
     mdpfrom: password of sender email address
     toaddr: receiver email address"""

msg = MIMEMultipart()  # instance of MIMEMultipart
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "data file"

body_email = "Body_of_the_mail"
msg.attach(MIMEText(body_email, 'plain'))

attachment = open(filepath, 'rb')  # open the file to be sent

p = MIMEBase('application', 'octet-stream')  # instance of MIMEBase
p.set_payload(attachment.read())
encoders.encode_base64(p)
p.add_header('Content-Disposition', "attachment; filename= %s" % filename)

msg.attach(p)  # attach the instance 'p' to instance 'msg'

s = smtplib.SMTP('smtp.gmail.com', 587)  # SMTP
s.starttls()
s.login(fromaddr, mdpfrom)

text = msg.as_string()

s.sendmail(from_email_addr, toaddr, text)  # sending the email

s.quit()  # terminating the session

그리고 다음 오류가 발생합니다:

smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8  https://support.google.com/mail/?p=BadCredentials c12-20020aa7d60c000000b0042be14040c1sm2612116edr.86 - gsmtp')

이 문제를 해결하기 위해 변경해야 할 유일한 방법은 다음과 같습니다:

s = smtplib.SMTP('smtp.gmail.com', 587)

내가 바꿀 수 있는 것으로 알거나 다른 오류가 보이면 나에게 많은 도움이 될거야! :-)




를 생성하여 해결했습니다.

  1. 너는 가야 한다
  2. 에서 2단계 검증을 활성화합니다
  3. 이후 "Google 로그인"에서 ""라는 새 옵션이 활성화되어야 합니다
  4. 앱 암호를 만들고 인증할 암호로 사용하기만 하면 됩니다



여기 모든 주요 단계를 포함한 보다 정확한 답변이 있습니다. 나는 그것이 다른 사람들에게 도움이 되기를 바란다.

  1. 이메일 계정에 로그인합니다:

  2. 그런 다음 보안 파트로 이동합니다

enter image description here

2단계 확인을 설정했는지 확인하고 "App password"를 클릭합니다

enter image description here

  1. 전자 메일 및 해당 장치를 선택한 후

enter image description here

  1. 이것은 이렇게 생긴 비밀번호를 생성할 것이다; 당신이 파이썬 스크립트에서 사용해야 하는 것은 이 비밀번호이다.

enter image description here

  1. 이 암호는 여기에 나타납니다. 이 플레이스에서는 암호를 지울 수 있는 옵션이 제공되므로 전자 메일 계정에 연결하는 것이 더 이상 유용하지 않습니다.

enter image description here

그것이 다른 사람들에게 도움이 되기를 바랍니다!


반응형