Gets the latest conversation beween mail server and mail client.
[Visual Basic] Public Property Conversation As String
[C#]
public string Conversation {get;}
[C++] public: __property String^ get_Conversation();
[JScript] public function get Conversation() : String;
Property Value
Example
[Visual Basic, C#, C++] The following example demonstrates how to receive email with EAGetMail POP3 & IMAP Component, but it doesn't demonstrates the events and mail parsing usage. To get the full samples of EAGetMail, please refer to Samples section.
[VB - Retrieve Email from POP3/IMAP4/MS Exchange Server]
Imports System
Imports System.Globalization
Imports System.IO
Imports System.Text
Imports EAGetMail
Public Class TestClass
' Generate an unqiue email file name based on date time.
Shared Function _generateFileName(ByVal sequence As Integer) As String
Dim currentDateTime As DateTime = DateTime.Now
Return String.Format("{0}-{1:000}-{2:000}.eml",
currentDateTime.ToString("yyyyMMddHHmmss", New CultureInfo("en-US")),
currentDateTime.Millisecond,
sequence)
End Function
Public Sub ReceiveMail(server As String, user As String, password As String, useSsl As Boolean)
Dim oClient As MailClient = Nothing
Try
' Create a folder named "inbox" under current directory
' to save the email retrieved.
Dim localInbox As String = String.Format("{0}\inbox", Directory.GetCurrentDirectory())
' If the folder is not existed, create it.
If Not Directory.Exists(localInbox) Then
Directory.CreateDirectory(localInbox)
End If
' To receive email from IMAP4 server, please change
' ServerProtocol.Pop3 to ServerProtocol.Imap4 in MailServer constructor
' To receive email with Exchange Web Service, please change
' ServerProtocol.Pop3 to ServerProtocol.ExchangeEWS to MailServer constructor
' To receive email with Exchange WebDAV, please change
' ServerProtocol.Pop3 to ServerProtocol.ExchangeWebDAV to MailServer constructor
' Exchange Server supports POP3/IMAP4 protocol as well, but in Exchange 2007
' Or later version, POP3/IMAP4 service Is disabled by default. If you don't want to use POP3/IMAP4
' to download email from Exchange Server, you can use Exchange Web Service (Exchange 2007-2019 Or
' later version) Or WebDAV (Exchange 2000/2003) protocol.
' Most modern email server require SSL/TLS connection,
' set useSsl to true Is recommended.
Dim oServer As New MailServer(server, user, password, useSsl,
ServerAuthType.AuthLogin, ServerProtocol.Pop3)
' POP3 port Is 110, POP3 SSL port Is 995
' IMAP4 port Is 143, IMAP4 SSL port Is 993.
' EWS/WebDAV, please ignore Port property.
If oServer.Protocol = ServerProtocol.Pop3 Then
oServer.Port = If(useSsl, 995, 110)
ElseIf oServer.Protocol = ServerProtocol.Imap4 Then
oServer.Port = If(useSsl, 993, 143)
End If
Console.WriteLine("Connecting server ...")
oClient = New MailClient("TryIt")
oClient.Connect(oServer)
Console.WriteLine("Retrieving email list ...")
Dim infos() As MailInfo = oClient.GetMailInfos()
Console.WriteLine("Total {0} email(s)", infos.Length)
For i As Integer = 0 To infos.Length - 1
Console.WriteLine("Checking {0}/{1} ...", i + 1, infos.Length)
Dim info As MailInfo = infos(i)
Console.WriteLine("UIDL: {0}", info.UIDL)
Console.WriteLine("Index: {0}", info.Index)
Console.WriteLine("Size: {0}", info.Size)
' IMAP4MailFlags is supported by IMAP only.
Console.WriteLine("Flags: {0}", info.IMAP4MailFlags)
' POP3 protocol doesn't support read flag.
Console.WriteLine("Read: {0}", info.Read)
Console.WriteLine("Deleted: {0}", info.Deleted)
' Generate an unqiue email file name based on date time.
Dim fileName As String = _generateFileName(i + 1)
Dim fullPath As String = String.Format("{0}\{1}", localInbox, fileName)
Console.WriteLine("Downloading {0}/{1} ...", i + 1, infos.Length)
Dim oMail As Mail = oClient.GetMail(info)
' Save email to local disk
oMail.SaveAs(fullPath, True)
' Mark email as deleted on server.
Console.WriteLine("Deleting ... {0}/{1}", i + 1, infos.Length)
oClient.Delete(info)
Next
Console.WriteLine("Disconnecting ...")
' Delete method just mark the email as deleted,
' Quit method expunge the emails from server permanently.
oClient.Quit()
Console.WriteLine("Completed!")
Catch ep As Exception
Console.WriteLine("Error: {0}", ep.Message)
End Try
If Not (oClient Is Nothing) Then
' show the conversation between server and client.
Console.WriteLine(oClient.Conversation)
End If
End Sub
End Class
[C# - Retrieve Email from POP3/IMAP4/MS Exchange Server]
using System;
using System.IO;
using System.Globalization;
using System.Text;
using EAGetMail;
class TestClass
{
// Generate an unqiue email file name based on date time
static string _generateFileName(int sequence)
{
DateTime currentDateTime = DateTime.Now;
return string.Format("{0}-{1:000}-{2:000}.eml",
currentDateTime.ToString("yyyyMMddHHmmss", new CultureInfo("en-US")),
currentDateTime.Millisecond,
sequence);
}
public void ReceiveMail(string server, string user, string password, bool useSsl)
{
MailClient oClient = null;
try
{
// Create a folder named "inbox" under current directory
// to save the email retrieved.
string localInbox = string.Format("{0}\\inbox", Directory.GetCurrentDirectory());
// If the folder is not existed, create it.
if (!Directory.Exists(localInbox))
{
Directory.CreateDirectory(localInbox);
}
// To receive email from IMAP4 server, please change
// ServerProtocol.Pop3 to ServerProtocol.Imap4 in MailServer constructor
// To receive email with Exchange Web Service, please change
// ServerProtocol.Pop3 to ServerProtocol.ExchangeEWS to MailServer constructor
// To receive email with Exchange WebDAV, please change
// ServerProtocol.Pop3 to ServerProtocol.ExchangeWebDAV to MailServer constructor
// Exchange Server supports POP3/IMAP4 protocol as well, but in Exchange 2007
// or later version, POP3/IMAP4 service is disabled by default. If you don't want to use POP3/IMAP4
// to download email from Exchange Server, you can use Exchange Web Service (Exchange 2007-2019 or
// later version) or WebDAV (Exchange 2000/2003) protocol.
// Most modern email server require SSL/TLS connection,
// set useSsl to true is recommended.
MailServer oServer = new MailServer(server, user, password, useSsl,
ServerAuthType.AuthLogin, ServerProtocol.Pop3);
// POP3 port is 110, POP3 SSL port is 995
// IMAP4 port is 143, IMAP4 SSL port is 993.
// EWS/WebDAV, please ignore Port property.
if (oServer.Protocol == ServerProtocol.Pop3)
{
oServer.Port = (useSsl) ? 995 : 110;
}
else if (oServer.Protocol == ServerProtocol.Imap4)
{
oServer.Port = (useSsl) ? 993 : 143;
}
Console.WriteLine("Connecting server ...");
oClient = new MailClient("TryIt");
oClient.Connect(oServer);
Console.WriteLine("Retreiving email list ...");
MailInfo[] infos = oClient.GetMailInfos();
Console.WriteLine("Total {0} email(s)", infos.Length);
for (int i = 0; i < infos.Length; i++)
{
Console.WriteLine("Checking {0}/{1} ...", i+1, infos.Length);
MailInfo info = infos[i];
Console.WriteLine("UIDL: {0}", info.UIDL);
Console.WriteLine("Index: {0}", info.Index);
Console.WriteLine("Size: {0}", info.Size);
// IMAP4MailFlags is supported by IMAP4 protocol only.
Console.WriteLine("Flags: {0}", info.IMAP4MailFlags);
// POP3 protocol doesn't support read flag
Console.WriteLine("Read: {0}", info.Read);
Console.WriteLine("Deleted: {0}", info.Deleted);
// Generate an unqiue email file name based on date time.
string fileName = _generateFileName(i + 1);
string fullPath = string.Format("{0}\\{1}", localInbox, fileName);
Console.WriteLine("Downloading {0}/{1} ...", i + 1, infos.Length);
Mail oMail = oClient.GetMail(info);
// Save mail to local file
oMail.SaveAs(fullPath, true);
// Mark the email as deleted on server.
Console.WriteLine("Deleting ... {0}/{1}", i + 1, infos.Length);
oClient.Delete(info);
}
Console.WriteLine("Disconnecting ...");
// Delete method just mark the email as deleted,
// Quit method expunge the emails from server permanently.
oClient.Quit();
Console.WriteLine("Completed!");
}
catch (Exception ep)
{
Console.WriteLine("Error: {0}", ep.Message);
}
if(oClient != null)
{
// show the conversation between server and client.
Console.WriteLine(oClient.Conversation);
}
}
}
[C++/CLI - Retrieve Email from POP3/IMAP4/MS Exchange Server]
using namespace System;
using namespace System::Globalization;
using namespace System::IO;
using namespace EAGetMail; //add EAGetMail namespace
// Generate an unqiue email file name based on date time
static String ^ _generateFileName(int sequence)
{
DateTime currentDateTime = DateTime::Now;
return String::Format("{0}-{1:000}-{2:000}.eml",
currentDateTime.ToString("yyyyMMddHHmmss", gcnew CultureInfo("en-US")),
currentDateTime.Millisecond,
sequence);
}
void ReceiveMail(String ^server, String ^user, String ^password, bool useSsl)
{
MailClient ^oClient = nullptr;
try
{
// Create a folder named "inbox" under current directory
// to save the email retrieved.
String ^localInbox = String::Format("{0}\\inbox", Directory::GetCurrentDirectory());
// If the folder is not existed, create it.
if (!Directory::Exists(localInbox))
{
Directory::CreateDirectory(localInbox);
}
// To receive email from IMAP4 server, please change
// ServerProtocol.Pop3 to ServerProtocol.Imap4 in MailServer constructor
// To receive email with Exchange Web Service, please change
// ServerProtocol.Pop3 to ServerProtocol.ExchangeEWS to MailServer constructor
// To receive email with Exchange WebDAV, please change
// ServerProtocol.Pop3 to ServerProtocol.ExchangeWebDAV to MailServer constructor
// Exchange Server supports POP3/IMAP4 protocol as well, but in Exchange 2007
// or later version, POP3/IMAP4 service is disabled by default. If you don't want to use POP3/IMAP4
// to download email from Exchange Server, you can use Exchange Web Service (Exchange 2007-2019 or
// later version) or WebDAV (Exchange 2000/2003) protocol.
// Most modern email server require SSL/TLS connection,
// set useSsl to true is recommended.
MailServer ^oServer = gcnew MailServer(server, user, password, useSsl,
ServerAuthType::AuthLogin, ServerProtocol::Pop3);
// POP3 port is 110, POP3 SSL port is 995
// IMAP4 port is 143, IMAP4 SSL port is 993.
// EWS/WebDAV, please ignore Port property.
if (oServer->Protocol == ServerProtocol::Pop3)
{
oServer->Port = (useSsl) ? 995 : 110;
}
else if (oServer->Protocol == ServerProtocol::Imap4)
{
oServer->Port = (useSsl) ? 993 : 143;
}
Console::WriteLine("Connecting server ...");
oClient = gcnew MailClient("TryIt");
oClient->Connect(oServer);
Console::WriteLine("Retreiving email list ...");
array<MailInfo^>^infos = oClient->GetMailInfos();
Console::WriteLine("Total {0} email(s)", infos->Length);
for (int i = 0; i < infos->Length; i++)
{
Console::WriteLine("Checking {0}/{1}", i + 1, infos->Length);
MailInfo ^info = infos[i];
Console::WriteLine("UIDL: {0}", info->UIDL);
Console::WriteLine("Index: {0}", info->Index);
Console::WriteLine("Size: {0}", info->Size);
// IMAP4MailFlags is supported by IMAP4 protocol only
Console::WriteLine("Flags: {0}", info->IMAP4MailFlags);
// POP3 doesn't support read flag
Console::WriteLine("Read: {0}", info->Read);
Console::WriteLine("Deleted: {0}", info->Deleted);
// Generate an unqiue email file name based on date time
String^ fileName = _generateFileName(i + 1);
String^ fullPath = String::Format("{0}\\{1}", localInbox, fileName);
Console::WriteLine("Downloading {0}/{1}", i + 1, infos->Length);
Mail ^oMail = oClient->GetMail(info);
// Save email to local disk
oMail->SaveAs(fullPath, true);
// Mark email as deleted on server.
Console::WriteLine("Deleting ... {0}/{1}", i + 1, infos->Length);
oClient->Delete(info);
}
Console::WriteLine("Disconnecting ...");
// Delete method just mark the email as deleted,
// Quit method expunge the emails from server permanently.
oClient->Quit();
Console::WriteLine("Completed!");
}
catch (Exception ^ep)
{
Console::WriteLine("Error: {0}", ep->Message);
}
if(oClient != nullptr)
{
// show the conversation between server and client.
Console::WriteLine(oClient->Conversation);
}
}
See Also