ComponentPro UltimateMail

      DownloadMessage(Int32, String) Method

      See AlsoMembers Options: Show AllLanguage Filter: AllSend comments on this topic to ComponentPro
      Downloads the specified message from the server and writes its data into a local file.

      Syntax

      public long DownloadMessage(
         int messageInboxIndex, 
         string fileName
      )

      Parameters

      messageInboxIndex
      The ordinal position of the message in the inbox. It must be in the range from 1 to MessageCount.
      fileName
      The path of the local file. This cannot be a directory.

      Return Value

      On success, the length of the message in bytes.

      Examples

      Shows how to connect to a POP3 server and download a message.

      using System;
      using System.Text;
      using ComponentPro.Net;
      using ComponentPro.Net.Mail;
      
      ...
      
      static void Main()
      {
          // POP3 server information. 
          const string serverName = "myserver";
          const string user = "name@domain.com";
          const string password = "mytestpassword";
          const int port = 995;
          const SslSecurityMode securityMode = SslSecurityMode.Implicit;
      
          // Create a new instance of the Pop3 class. 
          Pop3 client = new Pop3();
      
          // Connect to the server. 
          client.Connect(serverName, port, securityMode);
      
          // Login to the server. 
          client.Authenticate(user, password);
      
          // Get the message list. 
          Console.WriteLine("Getting message list...");
          Pop3MessageCollection list = client.ListMessages(Pop3EnvelopeParts.UniqueId | Pop3EnvelopeParts.MessageInboxIndex);
      
          // Get messages. 
          for (int i = 0; i < list.Count; i++)
          {
              Pop3Message message = list[i];
      
              // Get file name. 
              string filename = GetFilename(message.UniqueId) + ".eml";
      
              // Get new message only. 
              if (!System.IO.File.Exists(filename))
              {
                  Console.WriteLine("Downloading message {0}...", message.MessageInboxIndex);
                  client.DownloadMessage(message.MessageInboxIndex, filename);
              }
          }
      
          // Close the connection. 
          client.Disconnect();
      }
      
      /// <summary> 
      /// Returns a uniquely correct file name from the specified unique message ID. 
      /// </summary> 
      /// <param name="uniqueId">The unique id.</param> 
      /// <returns>The corrected file name.</returns> 
      private static string GetFilename(string uniqueId)
      {
          // Characters allowed in the filename 
          const string allowed = " .-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
      
          // Replace invalid charactes with its hex representation 
          StringBuilder sb = new StringBuilder();
          for (int i = 0; i < uniqueId.Length; i++)
          {
              if (allowed.IndexOf(uniqueId[i]) < 0)
                  sb.AppendFormat("_{0:X2}", (int)uniqueId[i]);
              else 
                  sb.Append(uniqueId[i]);
          }
          return sb.ToString();
      }

      Framework

      .NET Compact Framework.NET Compact Framework

      Supported version: 2.0, 3.5, and 3.9
      Assembly: ComponentPro.Mail.CF (in ComponentPro.Mail.CF.dll)

      .NET Framework.NET Framework

      Supported version: 2.0, 3.0, 3.5, 4.0, 4.5.x, 4.6.x and later
      Assembly: ComponentPro.Mail (in ComponentPro.Mail.dll)

      Xamarin AndroidXamarin Android

      Supported version: 2.3 and later
      Assembly: ComponentPro.Mail.Android (in ComponentPro.Mail.Android.dll)

      Xamarin MacXamarin Mac

      Supported version: 2.0.x and later
      Assembly: ComponentPro.Mail.Mac (in ComponentPro.Mail.Mac.dll)

      Xamarin iOSXamarin iOS

      Supported version: 5.1.x and later
      Assembly: ComponentPro.Mail.iOS (in ComponentPro.Mail.iOS.dll)

      See Also