paint-brush
Utilisation de Python pour envoyer des notifications par e-mail (exemples de code inclus)par@suprsend
6,172 lectures
6,172 lectures

Utilisation de Python pour envoyer des notifications par e-mail (exemples de code inclus)

par Nik L.7m2023/03/30
Read on Terminal Reader

Trop long; Pour lire

Il existe quatre façons différentes d'envoyer des e-mails transactionnels à l'aide de Python. Le module SMTP peut être utilisé pour envoyer des e-mails à l'aide du protocole de transfert de courrier simple. Vous pouvez utiliser le module MIMEText ou EmailMessage pour créer et formater le message. L'utilisation de SMTP pour envoyer des e-mails en python présente quelques inconvénients potentiels.
featured image - Utilisation de Python pour envoyer des notifications par e-mail (exemples de code inclus)
Nik L. HackerNoon profile picture
0-item



Les notifications par e-mail sont un excellent moyen de tenir vos utilisateurs informés des événements importants ou des mises à jour de votre application, comme un nouveau message, une réinitialisation de mot de passe ou une défaillance du système. Il existe plusieurs méthodes pour envoyer des notifications par e-mail, et bien que le processus ne soit pas complexe, il est important de choisir la bonne approche pour vos besoins.


Dans ce blog, nous verrons comment envoyer des e-mails en utilisant Python à l'aide d'extraits de code. Nous comparerons également le module SMTP utilisé en Python avec d'autres solutions populaires.


Conditions préalables

Avant de commencer avec ce guide, il y a quelques éléments dont vous aurez besoin pour en tirer le meilleur parti.


  1. Python installé sur votre machine
  2. Compréhension de base de Python et CLI
  3. Configuration du compte AWS et compréhension d'AWS SES
  4. Compte Suprsend fonctionnel (avec des fournisseurs configurés)


Avec ces choses à l'esprit, vous devriez être prêt à commencer!

4 façons différentes d'envoyer des notifications par e-mail avec Python

Cette section abordera quatre façons différentes pour les développeurs d'envoyer des e-mails transactionnels à l'aide de Python.

Utilisation du module Python smtplib

Le module Python smtplib peut envoyer des e-mails à l'aide du protocole SMTP (Simple Mail Transfer Protocol). SMTP est un protocole utilisé pour envoyer et recevoir des e-mails. Le module smtplib comprend des fonctions permettant de se connecter à un serveur SMTP et d'envoyer des e-mails. Le module comprend également des fonctions permettant de s'authentifier auprès d'un serveur SMTP.

Avantages de l'utilisation du module Python smtplib

L'utilisation du module smtplib présente de nombreux avantages. Par exemple, vous pouvez utiliser smtplib pour :

  • Envoyez des e-mails depuis votre programme Python
  • Envoyer des e-mails à partir d'un script (scripts automatisés, tâches de maïs, etc.)
  • Envoyer des e-mails en masse
  • Envoyer des e-mails HTML
  • Envoyer des pièces jointes

Inconvénients du module smtplib

L'utilisation de SMTP pour envoyer des e-mails en python présente quelques inconvénients potentiels. La première est qu'elle peut être moins fiable que d'autres méthodes ; parfois, les e-mails envoyés via SMTP se perdent ou se retrouvent dans des dossiers de spam.


De plus, SMTP s'appuie sur plusieurs protocoles complexes, ce qui complique la configuration et le dépannage. La maintenance et la mise à niveau des serveurs SMTP peuvent également entraîner des coûts supplémentaires.

Étapes pour envoyer un e-mail via le module Python SMTP

Vous pouvez utiliser le module MIMEText ou EmailMessage pour créer et formater le message. Vous trouverez ci-dessous les étapes pour envoyer un e-mail en utilisant Python avec le module smtplib et MIMEText .

  • Importez les modules smtplib et MIMEText depuis la bibliothèque de messagerie.
  • Créez un nouvel objet MIMEText et définissez le corps de l'e-mail, l'expéditeur, le destinataire et l'objet.
  • Établissez une connexion au serveur SMTP à l'aide de la fonction smtplib.SMTP() , en transmettant le nom d'hôte du serveur comme argument.
  • Utilisez la fonction send_message() pour envoyer l'e-mail.
  • Utilisez la fonction quit() pour fermer la connexion au serveur.
  • Utilisez un bloc try/except pour intercepter toutes les exceptions pouvant être levées pendant le processus d'envoi.

Extrait de code

Remarque : Remplacez l'adresse du serveur SMTP (localhost) par l'adresse de votre serveur avant d'exécuter le code ci-dessous.

Module SMTP

Fournisseurs de services de messagerie transactionnelle

Les fournisseurs de services de messagerie transactionnelle (TESP) permettent aux entreprises d'envoyer des e-mails transactionnels. Vous avez le choix entre de nombreuses options, notamment Amazon SES, Mailgun, Sendgrid, Postmark et Sparkpost, chacune avec ses propres avantages et fonctionnalités.

Il est important de sélectionner un TESP qui répond à vos besoins en termes de prix, de taux de livraison, d'évolutivité et de support et offre également une API puissante pour l'intégration dans votre système.

Avantages des fournisseurs de services de messagerie transactionnelle

Les fournisseurs de services de messagerie transactionnelle (TESP) offrent plusieurs avantages par rapport aux fournisseurs de messagerie traditionnels.

  • Les TESP sont conçus pour fournir un niveau de service et de fiabilité supérieur aux entreprises qui s'appuient sur le courrier électronique pour communiquer avec leurs clients.
  • Les TESP peuvent fournir un moyen rentable d'envoyer des e-mails transactionnels, car ils facturent généralement en fonction du nombre d'e-mails envoyés ou reçus.
  • Les TESP offrent généralement plusieurs fonctionnalités qui ne sont pas disponibles avec les fournisseurs de messagerie traditionnels, telles que les adresses IP dédiées, la surveillance en temps réel et les rapports de livraison.

Inconvénients des fournisseurs de services de messagerie transactionnelle

  • Les TESP peuvent être difficiles à configurer et à utiliser, ce qui nécessite des développeurs.
  • Les TESP offrent généralement une intégration basée sur l'API ; ainsi, la mise en page du contenu des e-mails, tels que les modèles HTML, doit être intégrée via des API.
  • Les TESP peuvent être rentables lors de l'envoi d'un volume relativement faible d'e-mails, mais à mesure que le volume augmente, cela peut devenir une option coûteuse.
  • Une mauvaise configuration peut entraîner l'envoi d'e-mails dans des dossiers de spam. Certains TESP peuvent avoir des configurations d'envoi d'e-mails sous-optimales, telles que l'utilisation d'adresses IP avec une réputation négative partagée entre plusieurs utilisateurs.

Cette section utilisera Python avec AWS SES pour envoyer des e-mails. AWS SES est un service de messagerie basé sur le cloud qui vous permet d'envoyer et de recevoir des e-mails en toute sécurité. Il offre un modèle de tarification rentable à l'utilisation et fournit une plate-forme évolutive, fiable et sécurisée pour la livraison des e-mails.

Étapes pour envoyer un e-mail à l'aide d'AWS SES

Nous utiliserons la bibliothèque Boto3 pour interagir avec AWS SES. Voici les étapes suivies dans le processus Python d'envoi d'e-mails d'AWS SES.

  • Importez les bibliothèques et modules nécessaires : boto3 et ClientError depuis botocore.exceptions .
  • Définissez la fonction send_email(), qui prend six arguments : les adresses e-mail de l'expéditeur et du destinataire, l'objet et le corps de l'e-mail, et le nom de la région AWS où se trouve le service SES.
  • Créez un nouveau client pour le service SES dans la région spécifiée à l'aide de la fonction boto3.client() .
  • Utilisez la méthode send_email() du client SES pour envoyer l'e-mail, en spécifiant le contenu de l'e-mail (objet, corps, destinataire) dans les paramètres Destination et Message.
  • Détectez toutes les erreurs lors de l'envoi d'e-mails à l'aide d'un bloc try-except et imprimez le message d'erreur.
  • Si l'e-mail est envoyé avec succès, renvoyez True . Sinon, retourne False .

Extrait de code

Envoi d'e-mails depuis Amazon SES

Utiliser Supprimer

Suprsend est une plate-forme qui permet aux développeurs de créer et de gérer des notifications sur plusieurs canaux, tels que les e-mails, les SMS, les notifications push, les messages de la boîte de réception et le chat.


Les flux de travail SuprSend simplifient le processus de création et de gestion de notifications complexes et de suivi des performances pour surveiller l'efficacité des messages. L'utilisation d'une API unique rationalise le processus d'envoi et élimine le besoin pour les développeurs d'écrire leur propre couche de service de notification.

Avantages de l'utilisation de Suprsend :

  • Il est hautement évolutif et peut être utilisé pour développer des notifications pour n'importe quel nombre d'utilisateurs.
  • SuprSend a une intégration intégrée avec TESP(s) SMTP et Gmail SMTP, de sorte que les développeurs n'ont pas à faire de configuration ou d'intégration d'API point à point avec eux. Cette fonctionnalité permet une commutation transparente entre les fournisseurs sans la contrainte d'être verrouillé sur un fournisseur spécifique.
  • Le SDK Python de SuprSend permet aux développeurs de déclencher facilement des notifications multicanaux avec un seul déclencheur. Cela peut être extrêmement utile pour les applications qui communiquent avec plusieurs canaux ou appareils.
  • Suprsend ne nécessite aucune configuration ou maintenance d'infrastructure. Il s'agit d'une solution basée sur le cloud, facile à utiliser et à faire évoluer.

Étapes pour envoyer des e-mails à l'aide de SuprSend

Installation du SDK Suprsend Python

Pour commencer, installez d'abord Suprsend Python SDK à l'aide de la commande suivante :

pip install suprsend-py-sdk

Pour envoyer des notifications à l'aide de Suprsend, vous aurez besoin d'une clé et d'un secret d'espace de travail (pour l'authentification). Vous pouvez modifier le workflow et le modèle de notification par défaut ou créer un nouveau workflow et un nouveau modèle.

Remarque : Nous avons créé un exemple de modèle et de flux de travail sur la plate-forme SuprSend pour ce didacticiel.

Code Python pour envoyer un e-mail à l'aide de SuprSend

Ajouter des pièces jointes avec un e-mail

L'ajout de pièces jointes python à l'aide de Suprsend est un jeu d'enfant. Ajoutez les extraits de code suivants à une pièce jointe via un chemin de fichier directement. L'objet de workflow ressemblera à ceci :

Utilisation de Gmail SMTP

Gmail est l'un des fournisseurs de messagerie les plus populaires, et pour une bonne raison. C'est gratuit, facile à utiliser et plein de fonctionnalités. Mais saviez-vous que vous pouvez également utiliser Gmail avec Python ?

Oui c'est vrai! Vous pouvez utiliser l'API Gmail pour envoyer et recevoir des e-mails avec Python. Et la meilleure partie est que ce n'est même pas si difficile. Cette section vous montrera comment envoyer des e-mails à l'aide de Gmail avec Python.

Avantages de l'API Gmail

L'utilisation de l'API Gmail pour envoyer des e-mails présente de nombreux avantages. L'avantage le plus évident est peut-être qu'il vous permet d'envoyer des e-mails directement depuis votre compte Gmail, ce qui peut être très pratique.

De plus, l'API Gmail peut offrir une expérience plus fiable et plus réactive que les autres méthodes d'envoi d'e-mails. Et comme l'API Gmail est intégrée à d'autres services Google, elle peut offrir des fonctionnalités et des avantages uniques que les autres fournisseurs de messagerie ne peuvent égaler.

Inconvénients de l'API Gmail

L'utilisation de l'API Gmail présente quelques inconvénients :

  • Pour utiliser l'API Gmail, vous devez utiliser des identifiants de messagerie (nom d'utilisateur et mot de passe), qui sont moins sécurisés. La gestion du compte sera toujours un problème si vous prévoyez d'utiliser un compte de service distinct.
  • Gmail impose les limites strictes suivantes concernant l'envoi d'e-mails :
  • Messages maximum par jour : 2 000 (1 500 pour les envois multiples et 500 pour un compte d'essai)
  • Nombre total de destinataires par jour : 10 000

Les entreprises évitent d'utiliser Gmail comme solution de messagerie évolutive en raison de ses inconvénients.

En savoir plus sur les limites d'utilisation de l'API Gmail .

Extrait de code

API Gmail

Conclusion

Et avec cela, nous espérons vous avoir donné un guide complet sur l'utilisation de Python pour envoyer des e-mails. Si vous recherchez une solution de notification évolutive multicanal et un moyen de rationaliser et d'optimiser votre processus de développement, consultez SuprSend.


#email #amazones #pythonemail


Avis de non-responsabilité : la partie d'introduction a été générée par l'IA.‍