Maison > développement back-end > Tutoriel Python > Comment résoudre l'erreur « Extension SMTP AUTH non prise en charge par le serveur » lors de l'envoi d'e-mails avec Python et Gmail ?

Comment résoudre l'erreur « Extension SMTP AUTH non prise en charge par le serveur » lors de l'envoi d'e-mails avec Python et Gmail ?

Patricia Arquette
Libérer: 2024-12-03 17:15:12
original
1034 Les gens l'ont consulté

How to Solve the

Envoyer des e-mails avec Gmail via Python

Envoyer des e-mails via Gmail à l'aide de Python peut être une tâche simple, mais vous pouvez parfois rencontrer des erreurs. L'une de ces erreurs est « Extension SMTP AUTH non prise en charge par le serveur ». Cela se produit lorsque vous essayez de vous connecter à votre compte Gmail à l'aide de la méthode login().

Pour résoudre ce problème, une modification de votre script Python est nécessaire. Remplacez le code qui tente d'invoquer la méthode login() par ce qui suit :

import smtplib

def send_email(user, pwd, recipient, subject, body):
  FROM = user
  TO = recipient if isinstance(recipient, list) else [recipient]
  SUBJECT = subject
  TEXT = body

  # Prepare actual message
  message = """From: %s\nTo: %s\nSubject: %s\n\n%s
  """ % (FROM, ", ".join(TO), SUBJECT, TEXT)
  try:
    server = smtplib.SMTP("smtp.gmail.com", 587)
    server.ehlo()
    server.starttls()
    server.login(user, pwd)
    server.sendmail(FROM, TO, message)
    server.close()
    print('successfully sent the mail')
  except:
    print("failed to send mail")
Copier après la connexion

Vous pouvez également choisir d'utiliser le port 465 en implémentant un objet SMTP_SSL :

# SMTP_SSL Example
server_ssl = smtplib.SMTP_SSL("smtp.gmail.com", 465)
server_ssl.ehlo() # optional, called by login()
server_ssl.login(gmail_user, gmail_pwd)
# ssl server doesn't support or need tls, so don't call server_ssl.starttls()
server_ssl.sendmail(FROM, TO, message)
#server_ssl.quit()
server_ssl.close()
print('successfully sent the mail')
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal