Envoyer des e‑mails et transférer des messages via SMTP

Le SmtpClient la classe Aspose.Email for Python via .NET offre une interface robuste et flexible pour l’envoi d’e‑mails en utilisant le protocole Simple Mail Transfer Protocol (SMTP). C’est le point d’entrée principal pour les développeurs qui souhaitent envoyer des messages électroniques depuis leurs applications.

Principales fonctionnalités de SmtpClient inclure la classe :

  • Livraison d’e‑mail SMTP : Permet d’envoyer des e‑mails directement via un serveur SMTP.

  • Options de livraison alternatives : Prend en charge des méthodes de livraison supplémentaires telles que l’enregistrement des messages sur le système de fichiers ou l’écriture dans une file de messages.

  • Opérations synchrones et asynchrones :

    • Mode synchrone: utilisez les méthodes Send pour bloquer le fil d’exécution actuel jusqu’à ce que l’e‑mail soit entièrement transmis.

    • Mode asynchrone : utilisez les méthodes SendAsync pour envoyer les messages en arrière‑plan, permettant à l’application de rester réactive.

  • Support TNEF : Permet l’envoi de messages au format Transport Neutral Encapsulation Format (TNEF) pour la compatibilité avec les fonctionnalités de Microsoft Outlook.

Cet article couvre toutes les principales fonctionnalités disponibles via le SmtpClient classe, démontrant comment envoyer des messages e‑mail standards et avancés avec un contrôle total sur la configuration et la livraison.

Envoyer des e‑mails de façon synchrone

Le SmtpClient.send Cette méthode vous permet d’envoyer un message e‑mail de façon synchrone. Cette approche est utile lorsque l’application doit confirmer la livraison avant de poursuivre.

Pour envoyer un e‑mail texte brut de façon synchrone avec Aspose.Email for Python via .NET, suivez les étapes et utilisez l’exemple de code ci‑dessous :

  1. Créez un MailMessage instance et définissez l’expéditeur, le(s) destinataire(s), le sujet et le corps.
  2. Configurez le SmtpClient avec l’hôte du serveur, le port, le nom d’utilisateur et le mot de passe.
  3. Appelez le send méthode sur le SmtpClient instance et transmettez le MailMessage objet.
# Create email
eml = ae.MailMessage()
eml.subject = "Message with Plain Text Body"
eml.body = "This is text body."
eml.from_address = "from@gmail.com"
eml.to.append(ae.MailAddress("to@gmail.com", "Recipient 1")) 

# Configure SmtpClient object
client = SmtpClient("smtp.gmail.com", 995, "username", "password")
client.security_options = SecurityOptions.AUTO 

# Send email
client.send(eml)

Envoyer un fichier EML pré‑composé via SMTP

Si vous devez envoyer un message e‑mail déjà composé et enregistré au format EML, vous pouvez le charger et l’envoyer de façon programmatique avec Aspose.Email for Python via .NET.

L’extrait de code suivant avec les étapes montre comment envoyer un fichier EML en utilisant SmtpClient:

  1. Chargez le fichier EML en utilisant le MailMessage.load méthode.
  2. Créez et configurez une instance de SmtpClient, en fournissant le nom d’hôte du serveur SMTP, le nom d’utilisateur et le mot de passe pour l’authentification.
  3. Appelez le send méthode sur le SmtpClient instance et passez le message chargé.
import aspose.email as ae

message = ae.MailMessage.load("test.eml")

# Send this message using SmtpClient
client = ae.clients.SmtpClient("host", "username", "password")
client.send(message)

Envoyer un e‑mail texte brut

Vous pouvez envoyer un e‑mail en texte brut avec Aspose.Email en spécifiant le corps du message comme du texte simple. Le MailMessage.body la propriété est utilisée pour définir le contenu, tandis que le SmtpClient la classe gère le processus d’envoi.

L’extrait de code suivant avec les étapes montre comment envoyer un e‑mail en texte brut :

  1. Créez une instance de la MailMessage classe.
  2. Définissez les adresses e‑mail de l’expéditeur et du destinataire.
  3. Attribuez le contenu texte brut à la propriété body.
  4. Créez une instance de la SmtpClient classe avec les détails du serveur et les informations d’authentification.
  5. Envoyer l’email en utilisant le send méthode.

Envoyer un e‑mail HTML

Aspose.Email for Python via .NET vous permet d’envoyer des e‑mails avec des corps formatés en HTML en utilisant le MailMessage classe. En assignant le contenu HTML à la html_body propriété et définition is_body_html en le définissant à True, vous pouvez créer des messages riches et stylisés.

L’exemple de code suivant avec les étapes montre comment envoyer un e‑mail HTML :

  1. Créez une instance de la MailMessage classe.
  2. Définissez les adresses e‑mail de l’expéditeur et du destinataire.
  3. Définir is_body_html = True pour indiquer le formatage HTML.
  4. Attribuez votre contenu HTML à la html_body propriété.
  5. Créez et configurez le SmtpClient instance.
  6. Utilisez le send méthode pour transmettre le message.

Remarque : Bien que cet exemple utilise du HTML basique, vous pouvez incorporer des structures HTML plus complexes pour créer des mises en page d’e‑mail réactives et personnalisées.

Envoyer un e‑mail HTML avec alternative texte brut

Lors de l’envoi d’e‑mails HTML, il est recommandé d’inclure une version texte brut pour les destinataires dont le client de messagerie ne prend pas en charge le HTML. Aspose.Email for Python via .NET propose le AlternateView classe pour inclure à la fois du contenu HTML et du texte brut dans un même message, améliorant la compatibilité et l’expérience utilisateur.

L’exemple de code suivant et les étapes montrent comment envoyer un e‑mail avec un contenu texte alternatif :

  1. Créez une instance de la MailMessage classe.
  2. Définissez les adresses e‑mail de l’expéditeur et du destinataire.
  3. Attribuez le contenu HTML à la html_body propriété et définissez is_body_html = True.
  4. Créez une AlternateView en texte brut en utilisant create_alternate_view_from_string.
  5. Ajoutez la vue alternative à la alternate_views collection du MailMessage.
  6. Créez et configurez le SmtpClient instance.
  7. Envoyer l’email en utilisant le send méthode.

Comment envoyer des e‑mails en masse

L’envoi d’e‑mails en masse consiste à expédier plusieurs messages à la fois — chacun potentiellement adressé à un destinataire différent. Aspose.Email offre cette capacité en utilisant le SmtpClient classe.

L’exemple de code ci‑dessous montre comment envoyer un lot d’e‑mails en une seule fois :

  1. Créez une instance de la SmtpClient classe et configurez son hôte, son port, ses identifiants et ses paramètres de sécurité.
  2. Créez plusieurs MailMessage instances — chacune représentant un message e‑mail individuel.
  3. Spécifiez l’expéditeur, le destinataire, l’objet et le corps du message pour chaque e‑mail.
  4. Ajoutez tous les MailMessage objets à un MailMessageCollection.
  5. Appelez le send méthode du SmtpClient classe, en passant le MailMessageCollection en tant qu’argument.
import aspose.email as ae
from aspose.email.clients import SmtpClient, SecurityOptions
from aspose.email import MailMessage, MailMessageCollection

# Create individual email messages
message1 = MailMessage("from@gmail.com", "to1@gmail.com", "Bulk Email - Message 1", "Hello, this is message 1.")
message2 = MailMessage("from@gmail.com", "to2@gmail.com", "Bulk Email - Message 2", "Hello, this is message 2.")
message3 = MailMessage("from@gmail.com", "to3@gmail.com", "Bulk Email - Message 3", "Hello, this is message 3.")

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

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

# Send all messages in bulk
client.send(many_messages)

Envoyer des e‑mails avec prise en charge multi‑connexion

Aspose.Email for Python via .NET vous permet d’utiliser plusieurs connexions simultanées lors de l’envoi d’e‑mails via le SmtpClient classe. Cette fonctionnalité peut aider à optimiser les performances lors de l’envoi d’un grand volume d’e‑mails en répartissant la charge de travail sur plusieurs connexions. Cependant, gardez à l’esprit que l’activation du mode multi‑connexion ne garantit pas une amélioration des performances dans tous les scénarios — cela dépend de la configuration du serveur et des conditions réseau.

Propriétés clés :

  • use_multi_connection: Active ou désactive le mode multi‑connexion pour le client SMTP.

  • connections_quantity: Spécifie le nombre de connexions à ouvrir lorsque le mode multi‑connexion est activé.

L’exemple de code suivant montre comment activer le mode multi‑connexion :

  1. Créez et configurez une instance de SmtpClient.
  2. Définissez les détails du serveur tels que l’hôte, le port, le nom d’utilisateur, le mot de passe et le chiffrement.
  3. Activez le mode multi‑connexion en définissant use_multi_connection.
  4. Spécifiez le nombre de connexions avec connections_quantity.
import aspose.email as ae

client = ae.clients.smtp.SmtpClient
client.host = "<HOST>"
client.username = "<USERNAME>"
client.password = "<PASSWORD>"
client.port = 587
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT

client.connections_quantity = 5
client.use_multi_connection = ae.clients.MultiConnectionMode.ENABLE
client.send(messages)

Envoyer des e‑mails formatés TNEF

Le Transport Neutral Encapsulation Format (TNEF) est un format e‑mail propriétaire utilisé par Microsoft Outlook et Exchange pour conserver le formatage riche, les objets intégrés et des fonctionnalités spéciales comme les boutons de vote. Les clients de messagerie standards pourraient ne pas conserver ce formatage lorsqu’ils utilisent des messages MIME classiques.

Aspose.Email for Python via .NET prend en charge l’envoi d’e‑mails au format TNEF afin de garantir que tous les formatages avancés et fonctions sont préservés. Cela est réalisé en activant le use_tnef propriété du SmtpClient classe.

L’exemple de code suivant et les étapes montrent comment envoyer un e‑mail TNEF :

  1. Chargez un message EML existant ou créez‑en un en utilisant le MailMessage classe.
  2. Définissez les adresses de l’expéditeur et du destinataire.
  3. Activez le formatage TNEF en définissant use_tnef = True sur le SmtpClient instance.
  4. Envoyez le message en utilisant le send() méthode.

Envoyer des demandes de réunion par e‑mail

Microsoft Outlook et d’autres clients de messagerie compatibles avec le calendrier comme IBM Lotus Notes permettent aux utilisateurs de gérer les rendez‑vous directement depuis leur boîte de réception. Lorsqu’un utilisateur reçoit une invitation à une réunion, il peut l’accepter ou la refuser directement dans son client de messagerie. Avec Aspose.Email for Python via .NET, les développeurs peuvent créer et envoyer ces invitations de réunion de façon programmatique, conformément à la norme iCalendar (RFC 2445).

Comment envoyer des invitations de réunion par e‑mail

Aspose.Email offre une prise en charge intégrée pour composer et envoyer des demandes de réunion iCalendar dans le cadre d’un e‑mail. Ces demandes sont compatibles avec les clients de calendrier populaires et permettent aux destinataires de répondre facilement aux invitations.

|Demande de réunion iCalendar envoyée par e‑mail| | :- | |todo:image_alt_text|

L’extrait de code suivant vous montre comment envoyer des demandes par e‑mail :

  1. Créez un MailMessage instance.
  2. Spécifiez les adresses e‑mail de l’expéditeur et du destinataire.
  3. Créez un Appointment objet avec le lieu, les heures de début/fin, l’expéditeur et les destinataires.
  4. Définissez le résumé et la description du rendez‑vous.
  5. Joignez le rendez‑vous à l’e‑mail en utilisant add_alternate_view().
  6. Envoyer l’email en utilisant le SmtpClient.

Support iCalendar pour IBM Lotus Notes

Aspose.Email utilise le format iCalendar (RFC 2445), ce qui garantit que vos demandes de réunion sont compatibles avec Microsoft Outlook, IBM Lotus Notes et tout autre client prenant en charge la norme. Le même processus peut être utilisé quelle que soit la plateforme du destinataire.

Transférer des e‑mails avec le client SMTP

Le transfert d’e‑mails est une tâche courante dans la communication digitale, souvent utilisée pour partager des messages reçus avec d’autres. Aspose.Email for Python via .NET permet aux développeurs de transférer des e‑mails de façon programmatique en utilisant le SmtpClient classe. La méthode forward permet de transférer des e‑mails enregistrés ou reçus à de nouveaux destinataires sans impliquer l’expéditeur d’origine.

Voici un exemple de code qui montre comment transférer un e‑mail en utilisant le MailMessage classe:

Transférer des fichiers EML sans les charger dans MailMessage

Aspose.Email prend également en charge le transfert direct de fichiers .eml sans les charger d’abord dans un MailMessage objet. Ceci est particulièrement utile dans les scénarios où l’usage de la mémoire système doit être minimisé.

L’exemple de code ci‑dessous montre comment transférer directement un fichier EML :

import aspose.email as ae

client = ae.clients.smtp.SmtpClient(host, smtp_port, username, password, ae.clients.SecurityOptions.AUTO)
file = open("test.eml", "rb")
client.forward(sender, recipients, file)