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 :
<code class="python">msg = MIMEMultipart()</code>
<code class="python">msg["To"] = "[email protected],[email protected],[email protected]"</code>
<code class="python">to_addrs = msg["To"].split(",")</code>
<code class="python">smtp = smtplib.SMTP("mailhost.example.com", 25) smtp.sendmail(msg["From"], to_addrs + msg["Cc"].split(","), msg.as_string())</code>
<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 protected]' recipients = ['[email protected]', '[email 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!