Envoyer des e-mails en Python

Les e-mails automatisés sont largement utilisés pour envoyer des notifications ou d’autres messages aux abonnés. De plus, divers e-mails sont déclenchés en fonction des actions ou du comportement des utilisateurs. Afin de mettre en œuvre l’automatisation des e-mails, cet article explique comment créer et envoyer des e-mails à l’aide de SMTP en Python.

Bibliothèque Python pour créer et envoyer des e-mails via SMTP

Afin de créer et d’envoyer des e-mails à l’aide de SMTP, nous utiliserons Aspose.Email for Python via .NET. Il s’agit d’une puissante bibliothèque Python qui vous permet d’implémenter des clients de messagerie riches en fonctionnalités. Vous pouvez installer l’API à partir de PyPI à l’aide de la commande suivante.

pip install Aspose.Email-for-Python-via-NET

Ou, vous pouvez suivre les étapes ci-dessous pour une installation manuelle.

  • Téléchargez le fichier installable .whl à partir de la section downloads.
  • Depuis la ligne de commande, utilisez la commande : pip install «FileName> >.whl pour installer l’API.
  • Téléchargez un package complet d’exemples de code source depuis GitHub.

Créer et envoyer des e-mails via SMTP en Python

Voici les étapes pour créer et envoyer un e-mail via SMTP en Python.

  • Créez un objet de la classe MailMessage.
  • Définissez l’objet, le corps, les adresses de l’expéditeur et du destinataire.
  • Définissez Cc ou Bcc (facultatif).
  • Créez un nouveau client SMTP à l’aide de la classe SmtpClient et définissez l’hôte, le port, le nom d’utilisateur et le mot de passe.
  • Définissez les options de sécurité.
  • Envoyez un e-mail à l’aide de la méthode SmtpClient.send(MailMessage).

L’exemple de code suivant montre comment créer et envoyer des e-mails en Python.

# Create email message
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.body = "This is plain text body."
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))

# Create SMTP Client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Send email
client.send(eml)

Envoyer des e-mails avec un corps HTML en Python

Voici les étapes à suivre pour envoyer des e-mails avec un corps HTML.

  • Créez un objet de la classe MailMessage.
  • Définissez le corps de l’e-mail à l’aide de la propriété MailMessage.bodyhtml.
  • Définissez la propriété MailMessage.isbodyhtml sur true.
  • Attribuez les adresses d’objet, d’expéditeur et de destinataire.
  • Définissez Cc ou Bcc (facultatif).
  • Créez un nouveau client SMTP à l’aide de la classe SmtpClient et définissez l’hôte, le port, le nom d’utilisateur et le mot de passe.
  • Envoyez un e-mail à l’aide de la méthode SmtpClient.send(MailMessage).

L’exemple de code suivant montre comment envoyer des e-mails avec un corps HTML en Python.

# Create email message with HTML body
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.is_body_html = True
eml.html_body = "<html><body>This is the <b>HTML</b>body</body></html>"
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))

# Create SMTP Client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Send email
client.send(eml)

Envoyer des e-mails en masse à l’aide de SMTP en Python

Voici les étapes pour envoyer des e-mails en masse en Python.

  • Créez plusieurs e-mails à l’aide de la classe MailMessage et définissez leurs propriétés, telles que l’objet, les destinataires, etc.
  • Créez un objet de la classe MailMessageCollection.
  • Ajoutez des e-mails à la collection à l’aide de la méthode MailMessageCollection.append(MailMessage).
  • Créez un nouveau client SMTP à l’aide de la classe SmtpClient et définissez l’hôte, le port, le nom d’utilisateur et le mot de passe.
  • Envoyez un e-mail à l’aide de la méthode SmtpClient.send(MailMessageCollection).

L’exemple de code suivant montre comment envoyer des e-mails en masse en Python.

# Create multiple email messages
message1 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message1, how are you?")
message2 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message2, how are you?")
message3 = MailMessage("from@gmail.com", "to@gmail.com", "Sending Bulk Emails using Aspose.Email", "message3, how are you?")

# Add messages to collection
manyMsg =  MailMessageCollection()
manyMsg.append(message1)
manyMsg.append(message2)
manyMsg.append(message3)

# Create SMTP Client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO

# Send emails
client.send(manyMsg)

Transférer un message électronique en Python

Voici les étapes pour transférer un message électronique en Python.

  • Chargez le message électronique dans un objet à l’aide de la méthode MailMessage.load(String fileName).
  • Définissez l’adresse du destinataire.
  • Créez un client SMTP à l’aide de la classe SmtpClient.
  • Transférer le message à l’aide de la méthode SmtpClient.forward().

L’exemple de code suivant montre comment transférer un e-mail en Python.

# Load email message to be forwarded
eml = MailMessage.load("Message.eml")

# Set recipient
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1"))

# Send using Smtp Client
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO
client.forward("Recipient1@domain.com", "Recipient2@domain.com", eml)

Obtenez une licence API gratuite

Vous pouvez demander une Licence temporaire gratuite afin d’utiliser l’API sans limitation d’évaluation.

Démo en direct

Conclusion

Dans cet article, vous avez appris à créer et envoyer des e-mails via SMTP en Python. De plus, vous avez vu comment envoyer des e-mails en masse avec du texte brut ou du corps HTML par programmation. Vous pouvez en savoir plus sur l’API de messagerie Python à l’aide de la documentation. Si vous avez des questions ou des requêtes, n’hésitez pas à nous le faire savoir via notre forum.

Voir également