Maison  >  Article  >  développement back-end  >  Comment envoyer des e-mails à plusieurs destinataires à l'aide du module smtplib de Python ?

Comment envoyer des e-mails à plusieurs destinataires à l'aide du module smtplib de Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-25 07:57:29133parcourir

How to Send Emails to Multiple Recipients Using Python's smtplib Module?

Comment envoyer un e-mail à plusieurs destinataires avec smtplib de Python

L'envoi d'un e-mail à plusieurs destinataires à l'aide du module smtplib nécessite un léger ajustement dans le en-tête de l'e-mail et les paramètres de la fonction.

Le problème survient lors de la définition de l'en-tête "À" dans le module email.Message avec plusieurs adresses. Alors que l'en-tête doit contenir des adresses e-mail délimitées par des virgules, la fonction smtplib.sendmail() attend une liste de destinataires.

Pour résoudre ce problème, les étapes suivantes sont nécessaires :

  1. Créer un e-mail en utilisant email.Message.MIMEMultipart() :
<code class="python">msg = MIMEMultipart()</code>
  1. Définissez l'en-tête de l'e-mail avec des adresses e-mail délimitées par des virgules :
<code class="python">msg["To"] = "[email&#160;protected],[email&#160;protected],[email&#160;protected]"</code>
  1. Créez une liste de destinataires pour la fonction sendmail() :
<code class="python">to_addrs = msg["To"].split(",")</code>
  1. Utilisez la fonction sendmail() avec la liste des destinataires :
<code class="python">smtp = smtplib.SMTP("mailhost.example.com", 25)
smtp.sendmail(msg["From"], to_addrs + msg["Cc"].split(","), msg.as_string())</code>
  1. Quitter la session SMTP :
<code class="python">smtp.quit()</code>

Cette approche enverra l'e-mail à tous les destinataires spécifiés dans les en-têtes "À" et "Cc". Alternativement, une solution plus simple peut être trouvée en utilisant MIMEText(), comme indiqué ci-dessous :

<code class="python">import smtplib
from email.mime.text import MIMEText

s = smtplib.SMTP('smtp.uk.xensource.com')
s.set_debuglevel(1)
msg = MIMEText("""body""")
sender = '[email&#160;protected]'
recipients = ['[email&#160;protected]', '[email&#160;protected]']
msg['Subject'] = "subject line"
msg['From'] = sender
msg['To'] = ", ".join(recipients)
s.sendmail(sender, recipients, msg.as_string())</code>

Cette version envoie un e-mail aux destinataires spécifiés à l'aide d'une seule connexion SMTP.

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!

Déclaration:
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