Occurs when the client is sending the e-mail data (Append) to the IMAP4 server.
[Visual Basic]
Public Event OnSendingDataStream As OnSendingDataStreamEventHandler
Public Delegate Sub OnSendingDataStreamEventHandler(_ ByVal sender As Object,
_ ByVal sent As Integer, _ ByVal total As Integer, _ ByRef cancel
As Boolean _)
[C#]
public event OnSendingDataStreamEventHandler OnSendingDataStream;
public delegate void OnSendingDataStreamEventHandler(object sender, int
sent, int total, ref bool cancel);
[C++]
public: __event OnSendingDataStreamEventHandler^ OnSendingDataStream;
public __gc __delegate void OnSendingDataStreamEventHandler(Object^ sender,
int sent, int total, bool % cancel);
Event Data
Remarks
Example
[Visual Basic, C#, C++] To get the full samples of EAGetMail, please refer to Samples section.
[VB - Append Email]
Imports EAGetMail
Module Module1
Sub OnSendingDataStream( _
ByVal sender As Object, _
ByVal sent As Integer, _
ByVal total As Integer, _
ByRef cancel As Boolean _
)
Console.WriteLine(String.Format("{0}/{1} sent", sent, total))
End Sub
Sub OnQuit( _
ByVal sender As Object, _
ByRef cancel As Boolean _
)
Console.WriteLine("Disconnecting ... ")
End Sub
Sub OnAuthorized( _
ByVal sender As Object, _
ByRef cancel As Boolean _
)
Console.WriteLine("Authorized")
End Sub
Sub OnIdle( _
ByVal sender As Object, _
ByRef cancel As Boolean _
)
'Application.DoEvents()
End Sub
Sub OnConnected( _
ByVal sender As Object, _
ByRef cancel As Boolean _
)
Console.WriteLine("Connected")
End Sub
Sub AppendEmail(ByVal emlFile As String, _
ByVal server As String, _
ByVal user As String, _
ByVal password As String)
Try
Dim oMail As New Mail("TryIt")
oMail.Load(emlFile, False)
Dim oClient As New MailClient("TryIt")
Dim oServer As New MailServer(server, user, password, ServerProtocol.Imap4)
'Catching the following events is not necessary, 'just make the
application more user friendly. 'If you use the object in asp.net/windows service
or non-gui application, 'You need not to catch the following events. 'To learn more
detail, please refer to the code in EAGetMail EventHandler region
AddHandler oClient.OnAuthorized, AddressOf OnAuthorized
AddHandler oClient.OnConnected, AddressOf OnConnected
AddHandler oClient.OnIdle, AddressOf OnIdle
AddHandler oClient.OnQuit, AddressOf OnQuit
AddHandler oClient.OnSendingDataStream, AddressOf OnSendingDataStream
oClient.Connect(oServer)
Dim folders() As Imap4Folder = oClient.Imap4Folders
Dim count As Integer = folders.Length
For i As Integer = 0 To count - 1
Dim folder As Imap4Folder = folders(i)
If String.Compare("Inbox", folder.Name, True) = 0 Then
'appends this email to "Inbox" folder
oClient.Append(folder, oMail.Content)
Exit For
End If
Next
oClient.Logout()
Catch ep As Exception
Console.WriteLine(ep.Message)
End Try
End Sub
Sub Main()
AppendEmail("c:\test.eml", "myserver", "myuser", "mypassword")
End Sub
End Module
[C# - Append Email]
using System;
using EAGetMail;
namespace Test
{
class Class1
{
public static void OnSendingDataStream(
object sender,
int sent,
int total,
ref bool cancel
)
{
Console.WriteLine(String.Format("{0}/{1} sent", sent, total));
}
public static void OnQuit(
object sender,
ref bool cancel
)
{
Console.WriteLine("Disconnecting ... ");
}
public static void OnAuthorized(
object sender,
ref bool cancel
)
{
Console.WriteLine("Authorized");
}
public static void OnIdle(
object sender,
ref bool cancel
)
{
//Application.DoEvents();
}
public static void OnConnected(
object sender,
ref bool cancel
)
{
Console.WriteLine("Connected");
}
public static void AppendEmail(string emlFile,
string server,
string user,
string password)
{
try
{
Mail oMail = new Mail("TryIt");
oMail.Load(emlFile, false);
MailClient oClient = new MailClient("TryIt");
MailServer oServer = new MailServer(server, user, password, ServerProtocol.Imap4);
oClient.Connect(oServer);
//Catching the following events is not necessary, //just make the
application more user friendly. //If you use the object in asp.net/windows service
or non-gui application, //You need not to catch the following events. //To learn
more detail, please refer to the code in EAGetMail EventHandler region
oClient.OnAuthorized += new MailClient.OnAuthorizedEventHandler(OnAuthorized);
oClient.OnConnected += new MailClient.OnConnectedEventHandler(OnConnected);
oClient.OnIdle += new MailClient.OnIdleEventHandler(OnIdle);
oClient.OnQuit += new MailClient.OnQuitEventHandler(OnQuit);
oClient.OnSendingDataStream += new MailClient.OnSendingDataStreamEventHandler(OnSendingDataStream);
Imap4Folder [] folders = oClient.Imap4Folders;
int count = folders.Length;
for(int i = 0; i < count; i++)
{
Imap4Folder folder = folders[i];
if(String.Compare("INBOX", folder.Name, true) == 0)
{
//appends this email to "Inbox" folder
oClient.Append(folder, oMail.Content);
break;
}
}
oClient.Logout();
}
catch(Exception ep)
{
Console.WriteLine(ep.Message);
}
}
[STAThread]
static void Main(string[] args)
{
AppendEmail("c:\\test.eml", "myserver", "myusername", "mypassword");
}
}
}
[C++C/CLI - Append Email]
#include "stdafx.h"
using namespace System;
using namespace System::IO;
using namespace EAGetMail; //add EAGetMail namespace
System::Void OnSendingDataStream(
Object^ sender,
int sent,
int total,
System::Boolean % cancel
)
{
Console::WriteLine("{0}/{1} sent", sent, total);
}
System::Void OnConnected(Object ^sender, System::Boolean % cancel)
{
Console::WriteLine("Connected");
}
System::Void OnQuit(Object ^sender, System::Boolean % cancel)
{
Console::WriteLine("Quit");
}
System::Void OnIdle(Object ^sender, System::Boolean % cancel)
{
//Application::DoEvents();
}
System::Void OnAuthorized(Object ^sender, System::Boolean % cancel)
{
Console::WriteLine("Authorized");
}
System::Void OnSecuring(Object ^sender, System::Boolean % cancel)
{
Console::WriteLine("Securing...");
}
System::Void AppendEmail(String^ emlFile,
String^ server,
String^ user,
String^ password)
{
try
{
Mail^ oMail = gcnew Mail("TryIt");
oMail->Load(emlFile, false);
MailClient ^oClient = gcnew MailClient("TryIt");
MailServer ^oServer = gcnew MailServer(server, user, password, ServerProtocol::Imap4);
//Catching the following events is not necessary, //just make the
application more user friendly. //If you use the object in asp.net/windows service
or non-gui application, //You need not to catch the following events. //To learn
more detail, please refer to the code in EAGetMail EventHandler region
oClient->OnAuthorized += gcnew MailClient::OnAuthorizedEventHandler(&OnAuthorized);
oClient->OnConnected += gcnew MailClient::OnConnectedEventHandler(&OnConnected);
oClient->OnIdle += gcnew MailClient::OnIdleEventHandler(&OnIdle);
oClient->OnSecuring += gcnew MailClient::OnSecuringEventHandler(&OnSecuring);
oClient->OnSendingDataStream +=
gcnew MailClient::OnSendingDataStreamEventHandler(&OnSendingDataStream);
oClient->OnQuit += gcnew MailClient::OnQuitEventHandler(&OnQuit);
oClient->Connect(oServer);
array<Imap4Folder^> ^folders = oClient->Imap4Folders;
int count = folders->Length;
for(int i = 0; i < count; i++)
{
Imap4Folder ^folder = folders[i];
if(String::Compare("INBOX", folder->Name, true) == 0)
{
//appends email to "INBOX"
oClient->Append(folder, oMail->Content);
break;
}
}
oClient->Logout();
}
catch(Exception ^ep)
{
Console::WriteLine(ep->Message);
}
}
int main(array<System::String ^> ^args)
{
AppendEmail("c:\\test.eml", "myserver", "myuser", "mypassword");
return 0;
}