Get Mailbox Information in C#, VB.NET
This article illustrates how to get mailbox information such as the number of messages, the size of mailbox and the unique id of a specific message using Spire.Email component.
Detail steps:
Step 1: Create a pop3 client.
Pop3Client pop = new Pop3Client();
Step 2: Set host, authentication, port and connection protocol.
pop.Host = "outlook.office365.com"; pop.Username = "LeonDavisLD@outlook.com"; pop.Password = "password"; pop.Port = 995; pop.EnableSsl = true;
Step 3: Connect the pop server.
pop.Connect();
Step 4: Get information of mailbox.
//Get the number of messages Console.WriteLine("Mailbox message count: " + pop.GetMessageCount()); //Get the size of mailbox Console.WriteLine("Mailbox size: " + pop.GetSize() + " bytes"); //Get the unique id of the first message Console.WriteLine("Message uid: " + pop.GetMessagesUid(1));
Screenshot:
Full code:
using System; using Spire.Email.Pop3; namespace Get_mailbox_information { class Program { static void Main(string[] args) { //Create a pop3 client using (Pop3Client pop = new Pop3Client()) { //Set host, authentication, port and connection protocol pop.Host = "outlook.office365.com"; pop.Username = "LeonDavisLD@outlook.com"; pop.Password = "password"; pop.Port = 995; pop.EnableSsl = true; //Connect the pop server pop.Connect(); //Get the number of messages Console.WriteLine("Mailbox message count: " + pop.GetMessageCount()); //Get the size of mailbox Console.WriteLine("Mailbox size: " + pop.GetSize() + " bytes"); //Get the unique id of the first message Console.WriteLine("Message uid: " + pop.GetMessagesUid(1)); } } } }
Imports Spire.Email.Pop3 Namespace Get_mailbox_information Class Program Private Shared Sub Main(args As String()) 'Create a pop3 client Using pop As New Pop3Client() 'Set host, authentication, port and connection protocol pop.Host = "outlook.office365.com" pop.Username = "LeonDavisLD@outlook.com" pop.Password = "password" pop.Port = 995 pop.EnableSsl = True 'Connect the pop server pop.Connect() 'Get the number of messages Console.WriteLine("Mailbox message count: " + pop.GetMessageCount()) 'Get the size of mailbox Console.WriteLine("Mailbox size: " + pop.GetSize() + " bytes") 'Get the unique id of the first message Console.WriteLine("Message uid: " + pop.GetMessagesUid(1)) End Using End Sub End Class End Namespace
Create, Rename and Delete Mail Folders using IMAP Client
Following code snippets demonstrate how to create, rename and delete a folder on mail server by using ImapClient class in Spire.Email.
Create a mail folder
using Spire.Email; using Spire.Email.IMap; using System; namespace CreateMailFolder { class Program { static void Main(string[] args) { //create an imapclient with username, password and host ImapClient client = new ImapClient(); client.Username = "test@outlook.com"; client.Password = "password"; client.Host = "outlook.office365.com"; //specify the port client.Port = 143; //specify the connection protocol client.ConnectionProtocols = ConnectionProtocols.Ssl; //connect to imap mail server client.Connect(); //create a folder named ‘e-iceblue’ client.CreateFolder("e-iceblue"); Console.WriteLine("Done!"); } } }
Rename a mail folder
using Spire.Email; using Spire.Email.IMap; using System; namespace RenameMailFolder { class Program { static void Main(string[] args) { //create an imapclient with username, password and host ImapClient client = new ImapClient(); client.Username = "test@outlook.com"; client.Password = "password"; client.Host = "outlook.office365.com"; //specify the port client.Port = 143; //specify the connection protocol client.ConnectionProtocols = ConnectionProtocols.Ssl; //connect to imap mail server client.Connect(); //rename an existing folder with a new name client.RenameFolder("e-iceblue", "E-ICEBLUE"); Console.WriteLine("Done!"); } }
Delete a mail folder
using Spire.Email; using Spire.Email.IMap; using System; namespace DeleteMailFolder { class Program { static void Main(string[] args) { //create an imapclient with username, password and host ImapClient client = new ImapClient(); client.Username = "test@outlook.com"; client.Password = "password"; client.Host = "outlook.office365.com"; //specify the port client.Port = 143; //specify the connection protocol client.ConnectionProtocols = ConnectionProtocols.Ssl; //connect to imap mail server client.Connect(); //delete an existing folder client.DeleteFolder("E-ICEBLUE"); Console.WriteLine("Done!"); } } }
Extract and delete Email attachment
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:
How to extract the attachment from an Email message:
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); } } } }
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
How to delete the attachment from an Email message:
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); } } }
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
Receive and Save Email in C#, VB.NET
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
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(); } } }
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
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(); } } }
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:
Send Email with HTML Body in C#, VB.NET
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:
Full Code:
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();
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(); } } }
Send Email with Attachment in C#, VB.NET
This article illustrates how to create an email message with attachment and send it using Spire.Email component in C# and VB.NET.
Detail steps:
Step 1: Declare and assign three MailAddress objects.
MailAddress addressFrom = "Alice.yang@e-iceblue.com"; MailAddress addressTo = "leondavisld@outlook.com"; MailAddress adressCC = "Shawn_Smithhh@outlook.com";
Step 2: Create an email message.
MailMessage message = new MailMessage(addressFrom, addressTo);
Step 3: Set subject, text body and creation time for the message.
message.Subject = "Spire.Email Component"; message.BodyText = "Hi!\r\n"+ "Spire.Email for .NET is a professional .NET Email library specially designed for developers to create, read and manipulate emails on any .NET (C#, VB.NET, ASP.NET) platform."; message.Date = DateTime.Now;
Step 4: Add an attachment and the second receiver to cc.
message.Attachments.Add(new Attachment("Hydrangeas.jpg")); message.Cc.Add(adressCC.Address);
Step 5: Create a SmtpClient instance and send the email message.
SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.outlook.com"; smtp.ConnectionProtocols = ConnectionProtocols.Ssl; smtp.Username = addressFrom.Address; smtp.Password = "password"; smtp.Port = 587; smtp.SendOne(message);
Screenshot:
Full code:
using System; using System.Globalization; using Spire.Email; using Spire.Email.IMap; using Spire.Email.Smtp; namespace Send_Email { class Program { static void Main(string[] args) { MailAddress addressFrom = "Alice.yang@e-iceblue.com"; MailAddress addressTo = "LeonDavisLD@outlook.com"; MailAddress adressCC = "Shawn_Smithhh@outlook.com"; MailMessage message = new MailMessage(addressFrom, addressTo); message.Subject = "Spire.Email Component"; message.BodyText = "Hi!\r\n"+ "Spire.Email for .NET is a professional .NET Email library specially designed for developers to create, read and manipulate emails on any .NET (C#, VB.NET, ASP.NET) platform."; message.Date = DateTime.Now; message.Attachments.Add(new Attachment("Hydrangeas.jpg")); message.Cc.Add(adressCC.Address); SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.outlook.com"; smtp.ConnectionProtocols = ConnectionProtocols.Ssl; smtp.Username = addressFrom.Address; smtp.Password = "password"; smtp.Port = 587; 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("Attachment: " + message.Attachments.Count); Console.WriteLine("------------------- BODY -----------------"); Console.WriteLine(message.BodyText); Console.WriteLine("------------------- END ------------------"); smtp.SendOne(message); Console.WriteLine("Message Sent."); Console.ReadLine(); } } }
Imports System.Globalization Imports Spire.Email Imports Spire.Email.IMap Imports Spire.Email.Smtp Namespace Send_Email Class Program Private Shared Sub Main(args As String()) Dim addressFrom As MailAddress = "Alice.yang@e-iceblue.com" Dim addressTo As MailAddress = "LeonDavisLD@outlook.com" Dim adressCC As MailAddress = "Shawn_Smithhh@outlook.com" Dim message As New MailMessage(addressFrom, addressTo) message.Subject = "Spire.Email Component" message.BodyText = "Hi!" & vbCr & vbLf + "Spire.Email for .NET is a professional .NET Email library specially designed for developers to create, read and manipulate emails on any .NET (C#, VB.NET, ASP.NET) platform." message.[Date] = DateTime.Now message.Attachments.Add(New Attachment("Hydrangeas.jpg")) message.Cc.Add(adressCC.Address) Dim smtp As New SmtpClient() smtp.Host = "smtp.outlook.com" smtp.ConnectionProtocols = ConnectionProtocols.Ssl smtp.Username = addressFrom.Address smtp.Password = "password" smtp.Port = 587 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("Attachment: " + message.Attachments.Count) Console.WriteLine("------------------- BODY -----------------") Console.WriteLine(message.BodyText) Console.WriteLine("------------------- END ------------------") smtp.SendOne(message) Console.WriteLine("Message Sent.") Console.ReadLine() End Sub End Class End Namespace