Maison >développement back-end >C++ >Comment puis-je enregistrer des objets MailMessage sur le disque en tant que fichiers .eml ou .msg ?

Comment puis-je enregistrer des objets MailMessage sur le disque en tant que fichiers .eml ou .msg ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-08 10:21:41998parcourir

How Can I Save MailMessage Objects to Disk as .eml or .msg Files?

Objets MailMessage persistants sous forme de fichiers .eml ou .msg

Fréquemment, les développeurs doivent enregistrer les messages électroniques représentés par MailMessage objets dans le système de fichiers. Malheureusement, la classe MailMessage ne prend pas directement en charge la sauvegarde sur disque. Cet article présente une solution pratique.

La solution : tirer parti de SmtpClient

La clé est d'utiliser la classe SmtpClient. En définissant sa propriété DeliveryMethod sur SmtpDeliveryMethod.SpecifiedPickupDirectory, nous redirigeons le stockage des messages électroniques vers un dossier local, contournant ainsi la transmission réseau.

Exemple de code :

<code class="language-csharp">using System.Net.Mail;

namespace EmailFileWriter
{
    class Program
    {
        static void Main(string[] args)
        {
            // Initialize a MailMessage object.  Content can be added as needed.
            MailMessage email = new MailMessage();

            // Configure SmtpClient for local file storage.
            SmtpClient client = new SmtpClient();
            client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
            client.PickupDirectoryLocation = @"C:\somedirectory"; // Specify your desired path

            // "Sending" the email saves it to the specified directory.
            client.Send(email);
        }
    }
}</code>

Configuration alternative : App.config

Pour une flexibilité accrue, configurez les paramètres SmtpClient dans le fichier de configuration de votre application (App.config) :

<code class="language-xml"><?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.net>
    <mailSettings>
      <smtp deliveryMethod="SpecifiedPickupDirectory">
        <specifiedPickupDirectory pickupDirectoryLocation="C:\somedirectory" />
      </smtp>
    </mailSettings>
  </system.net>
</configuration></code>

Cette méthode génère des fichiers email (.eml ou .msg, selon le client de messagerie utilisé) dans le répertoire désigné lors de l'appel client.Send(). Ces fichiers peuvent être traités ou envoyés ultérieurement.

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