page 194

Extract and delete Email attachment

2017-07-04 06:06:37 Written by Koohji

This article demonstrates how to extract the attachment from an email message and delete the attachment via Spire.Email in C# and VB.NET. Spire.Email supports to work with MSG, EML, EMLX, MHTML, PST, OST and TNEF email file formats. On this article we use .msg message format for example.

Firstly, please view the sample email message with attachments:

Extract and delete Email attachment

How to extract the attachment from an Email message:

[C#]
using Spire.Email;
using System.IO;


namespace ExtractAttachment 
{
    class Program
    {
        static void Main(string[] args)
        {
            //Load the mail message from file
            MailMessage mail = MailMessage.Load("Test.msg");

            //Create a folder named Attachments
            if (!Directory.Exists("Attachments"))
            {
                Directory.CreateDirectory("Attachments");
            }

            foreach (Attachment attach in mail.Attachments)
            {
                //To get and save the attachment
                string filePath = string.Format("Attachments\\{0}", attach.ContentType.Name);
                if (File.Exists(filePath))
                {
                    File.Delete(filePath);
                }
                FileStream fs = File.Create(filePath);
                attach.Data.CopyTo(fs);
            }
        }
    }
}
[VB.NET]
Imports Spire.Email
Imports System.IO


Namespace ExtractAttachment
	Class Program
		Private Shared Sub Main(args As String())
			'Load the mail message from file
			Dim mail As MailMessage = MailMessage.Load("Test.msg")

			'Create a folder named Attachments
			If Not Directory.Exists("Attachments") Then
				Directory.CreateDirectory("Attachments")
			End If

			For Each attach As Attachment In mail.Attachments
				'To get and save the attachment
				Dim filePath As String = String.Format("Attachments\{0}", attach.ContentType.Name)
				If File.Exists(filePath) Then
					File.Delete(filePath)
				End If
				Dim fs As FileStream = File.Create(filePath)
				attach.Data.CopyTo(fs)
			Next
		End Sub
	End Class
End Namespace

Extract and delete Email attachment

How to delete the attachment from an Email message:

[C#]
using Spire.Email;


namespace DeleteAttachment 
{
    class Program
    {
        static void Main(string[] args)
        {
            MailMessage mail = MailMessage.Load("Test.msg");
            // Delete the attachment by index
            mail.Attachments.RemoveAt(0);
            // Delete the attachment by attachment name
            for (int i = 0; i < mail.Attachments.Count; i++)
            {
                Attachment attach = mail.Attachments[i];
                if (attach.ContentType.Name == "logo.png")
                {
                    mail.Attachments.Remove(attach);
                }
            }
            mail.Save("HasDeletedAttachment.msg", MailMessageFormat.Msg);
        }
    }
}
[VB.NET]
Imports Spire.Email


Namespace DeleteAttachment
	Class Program
		Private Shared Sub Main(args As String())
			Dim mail As MailMessage = MailMessage.Load("Test.msg")
			' Delete the attachment by index
			mail.Attachments.RemoveAt(0)
			' Delete the attachment by attachment name
			For i As Integer = 0 To mail.Attachments.Count - 1
				Dim attach As Attachment = mail.Attachments(i)
				If attach.ContentType.Name = "logo.png" Then
					mail.Attachments.Remove(attach)
				End If
			Next
			mail.Save("HasDeletedAttachment.msg", MailMessageFormat.Msg)
		End Sub
	End Class
End Namespace

Extract and delete Email attachment

Receive and Save Email in C#, VB.NET

2017-07-03 08:00:34 Written by Koohji

Spire.Email allows receiving email messages with POP3 client and IMAP client. The following examples demonstrate how to retrieve an email using both POP3 and IMAP clients and save it to disk in C# and VB.NET.

Use POP3 client

[C#]
using Spire.Email;
using Spire.Email.Pop3;
using System;
using System.Globalization;

namespace ReceiveAndSaveEmailByUsingPOP3client
{
    class Program
    {
        static void Main(string[] args)
        {
            //Create a POP3 client
            Pop3Client pop = new Pop3Client();
            //Set host, username, password etc. for the client
            pop.Host = "outlook.office365.com";
            pop.Username = "LeonDavisLD@outlook.com";
            pop.Password = "password";
            pop.Port = 995;
            pop.EnableSsl = true;
            //Connect the server
            pop.Connect();

            //Get the first message by its sequence number
            MailMessage message = pop.GetMessage(1);

            //Parse the message
            Console.WriteLine("------------------ HEADERS ---------------");
            Console.WriteLine("From   : " + message.From.ToString());
            Console.WriteLine("To     : " + message.To.ToString());
            Console.WriteLine("Date   : " + message.Date.ToString(CultureInfo.InvariantCulture));
            Console.WriteLine("Subject: " + message.Subject);
            Console.WriteLine("------------------- BODY -----------------");
            Console.WriteLine(message.BodyText);
            Console.WriteLine("------------------- END ------------------");

            //Save the message to disk using its subject as file name
            message.Save(message.Subject + ".eml", MailMessageFormat.Eml);

            Console.WriteLine("Message Saved.");
            Console.ReadKey();
        }
    }
}
[VB.NET]
Imports Spire.Email
Imports Spire.Email.Pop3
Imports System.Globalization

Namespace ReceiveAndSaveEmailByUsingPOP3client
	Class Program
		Private Shared Sub Main(args As String())
			'Create a POP3 client
			Dim pop As New Pop3Client()
			'Set host, username, password etc. for the client
			pop.Host = "outlook.office365.com"
			pop.Username = "LeonDavisLD@outlook.com"
			pop.Password = "password"
			pop.Port = 995
			pop.EnableSsl = True
			'Connect the server
			pop.Connect()

			'Get the first message by its sequence number
			Dim message As MailMessage = pop.GetMessage(1)

			'Parse the message
			Console.WriteLine("------------------ HEADERS ---------------")
			Console.WriteLine("From   : " + message.From.ToString())
			Console.WriteLine("To     : " + message.[To].ToString())
			Console.WriteLine("Date   : " + message.[Date].ToString(CultureInfo.InvariantCulture))
			Console.WriteLine("Subject: " + message.Subject)
			Console.WriteLine("------------------- BODY -----------------")
			Console.WriteLine(message.BodyText)
			Console.WriteLine("------------------- END ------------------")

			'Save the message to disk using its subject as file name
			message.Save(message.Subject + ".eml", MailMessageFormat.Eml)

			Console.WriteLine("Message Saved.")
			Console.ReadKey()
		End Sub
	End Class
End Namespace

Use IMAP client

[C#]
using Spire.Email;
using Spire.Email.IMap;
using System;
using System.Globalization;


namespace ReceiveAndSaveEmailByUsingIMAPclient
{
    class Program
    {
        static void Main(string[] args)
        {
            //Create an IMAP client
            ImapClient imap = new ImapClient();
            // Set host, username, password etc. for the client
            imap.Host = "outlook.office365.com";
            imap.Port = 143;
            imap.Username = "LeonDavisLD@outlook.com";
            imap.Password = "password";
            imap.ConnectionProtocols = ConnectionProtocols.Ssl;
            //Connect the server
            imap.Connect();

            //Select Inbox folder
            imap.Select("Inbox");

            //Get the first message by its sequence number
            MailMessage message = imap.GetFullMessage(1);

            //Parse the message
            Console.WriteLine("------------------ HEADERS ---------------");
            Console.WriteLine("From   : " + message.From.ToString());
            Console.WriteLine("To     : " + message.To.ToString());
            Console.WriteLine("Date   : " + message.Date.ToString(CultureInfo.InvariantCulture));
            Console.WriteLine("Subject: " + message.Subject);
            Console.WriteLine("------------------- BODY -----------------");
            Console.WriteLine(message.BodyText);
            Console.WriteLine("------------------- END ------------------");

            //Save the message to disk using its subject as file name
            message.Save(message.Subject + ".eml", MailMessageFormat.Eml);

            Console.WriteLine("Message Saved.");
            Console.ReadKey();
        }
    }
}
[VB.NET]
Imports Spire.Email
Imports Spire.Email.IMap
Imports System.Globalization


Namespace ReceiveAndSaveEmailByUsingIMAPclient
	Class Program
		Private Shared Sub Main(args As String())
			'Create an IMAP client
			Dim imap As New ImapClient()
			' Set host, username, password etc. for the client
			imap.Host = "outlook.office365.com"
			imap.Port = 143
			imap.Username = "LeonDavisLD@outlook.com"
			imap.Password = "password"
			imap.ConnectionProtocols = ConnectionProtocols.Ssl
			'Connect the server
			imap.Connect()

			'Select Inbox folder
			imap.[Select]("Inbox")

			'Get the first message by its sequence number
			Dim message As MailMessage = imap.GetFullMessage(1)

			'Parse the message
			Console.WriteLine("------------------ HEADERS ---------------")
			Console.WriteLine("From   : " + message.From.ToString())
			Console.WriteLine("To     : " + message.[To].ToString())
			Console.WriteLine("Date   : " + message.[Date].ToString(CultureInfo.InvariantCulture))
			Console.WriteLine("Subject: " + message.Subject)
			Console.WriteLine("------------------- BODY -----------------")
			Console.WriteLine(message.BodyText)
			Console.WriteLine("------------------- END ------------------")

			'Save the message to disk using its subject as file name
			message.Save(message.Subject + ".eml", MailMessageFormat.Eml)

			Console.WriteLine("Message Saved.")
			Console.ReadKey()
		End Sub
	End Class
End Namespace

Screenshot:

Receive and Save Email in C#, VB.NET

Send Email with HTML Body in C#, VB.NET

2017-06-30 02:31:13 Written by Koohji

Following code snippets demonstrate how to send an email with HTML body using Spire.Email in C# and VB.NET.

Step 1: Create an instance of MailMessage class and specify sender and recipient in its constructor.

MailAddress addressFrom = new MailAddress("jack.du@e-iceblue.com", "Jack Du");
MailAddress addressTo = new MailAddress("susanwong32@outlook.com");
MailMessage message = new MailMessage(addressFrom, addressTo);

Step 2: Set the creation date, subject and html body of the message.

message.Date = DateTime.Now;
message.Subject = "Sending Email with HTML Body";
string htmlString = @"<html>
                      <body>
                      <p>Dear Ms. Susan,</p>
                      <p>Thank you for your letter of yesterday inviting me to come for an interview on Friday afternoon, 5th July, at 2:30.
                              I shall be happy to be there as requested and will bring my diploma and other papers with me.</p>
                      <p>Sincerely,<br>-Jack</br></p>
                      </body>
                      </html>
                     ";   
message.BodyHtml = htmlString;

Step 3: Create a SmtpClient instance, set its properties, and send the email using SendOne() medthod.

SmtpClient client= new SmtpClient();
client.Host = "smtp.outlook.com";
client.Port = 587;
client.Username = addressFrom.Address;
client.Password = "password";
client.ConnectionProtocols = ConnectionProtocols.Ssl;
client.SendOne(message);

Output:

Send Email with HTML Body in C#, VB.NET

Full Code:

[C#]
MailAddress addressFrom = new MailAddress("jack.du@e-iceblue.com", "Jack Du");
MailAddress addressTo = new MailAddress("susanwong32@outlook.com");
MailMessage message = new MailMessage(addressFrom, addressTo);

message.Date = DateTime.Now;
message.Subject = "Sending Email with HTML Body";
string htmlString = @"<html>
                      <body>
                      <p>Dear Ms. Susan,</p>
                      <p>Thank you for your letter of yesterday inviting me to come for an interview on Friday afternoon, 5th July, at 2:30.
                              I shall be happy to be there as requested and will bring my diploma and other papers with me.</p>
                      <p>Sincerely,<br>-Jack</br></p>
                      </body>
                      </html>
                     ";   
message.BodyHtml = htmlString;

SmtpClient client= new SmtpClient();
client.Host = "smtp.outlook.com";
client.Port = 587;
client.Username = addressFrom.Address;
client.Password = "password";
client.ConnectionProtocols = ConnectionProtocols.Ssl;
client.SendOne(message);

Console.WriteLine("Sent Successfully!");
Console.Read();
[VB.NET]
using Spire.Email;
using Spire.Email.IMap;
using Spire.Email.Smtp;
using System;

namespace SendEmailwithHTMLBody
{
    class Program
    {
        static void Main(string[] args)
        {
            MailAddress addressFrom = new MailAddress("jack.du@e-iceblue.com", "Jack Du");
            MailAddress addressTo = new MailAddress("susanwong32@outlook.com");
            MailMessage message = new MailMessage(addressFrom, addressTo);

            message.Date = DateTime.Now;
            message.Subject = "Sending Email with HTML Body";
            string htmlString = @"<html>
                      <body>
                      <p>Dear Ms. Susan,</p>
                      <p>Thank you for your letter of yesterday inviting me to come for an interview on Friday afternoon, 5th July, at 2:30.
                              I shall be happy to be there as requested and will bring my diploma and other papers with me.</p>
                      <p>Sincerely,<br>-Jack</br></p>
                      </body>
                      </html>
                     ";
            message.BodyHtml = htmlString;

            SmtpClient client = new SmtpClient();
            client.Host = "smtp.outlook.com";
            client.Port = 587;
            client.Username = addressFrom.Address;
            client.Password = "password";
            client.ConnectionProtocols = ConnectionProtocols.Ssl;
            client.SendOne(message);

            Console.WriteLine("Sent Successfully!");
            Console.Read();
        }
    }
}
page 194