This technical tip explains how .NET developers can create RE (Reply/Reply All) and FW (Forward) email messages from a source message inside their .NET applications using Aspose.Email for .NET. IEWSClient lets developers create RE (Reply/Reply All) and FW (Forward) messages from a source message. The source message is identified by selecting a particular ExchangeMessageInfo from ExchangeMessageInfoCollection obtained by IEWSClient.ListMessages(). The other argument is the actual MailMessage to be sent as RE or FW message. In the following example, a sample account is used to send a message and then the Reply and Forward message features are demonstrated against that sample message.
To perform this task:
[C# Code Sample]
Aspose.Email for .NET is a set of components allowing developers to easily implement email functionality within their ASP.NET web applications, web services & Windows applications. It Supports Outlook PST, EML, MSG & MHT formats. It allows developers to work with SMTP, POP3, FTP & MS Exchange servers. It supports mail merge, iCalendar, customized header & body, header information, embedded files, Twitter & many more. It makes it easy to work with HTML or plain text emails & their attachments.
To perform this task:
- Initialize the IEWSClient object by providing valid credentials.
- Send a few sample messages.
- Call the IEWSClient.Reply(), IEWSClient.ReplyAll() and IEWSClient.Forward() functions to send messages
[C# Code Sample]
public static IEWSClient GetEWSClient()
{
const string mailboxUri = "https://exchange.domain.com/ews/Exchange.asmx";
const string domain = @"";
const string username = @"username";
const string password = @"password";
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credential);
return client;
}
public static void TestMailReFw()
{
using (IEWSClient client = GetAsposeEWSClient2())
{
try
{
{
const string mailboxUri = "https://exchange.domain.com/ews/Exchange.asmx";
const string domain = @"";
const string username = @"username";
const string password = @"password";
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credential);
return client;
}
public static void TestMailReFw()
{
using (IEWSClient client = GetAsposeEWSClient2())
{
try
{
MailMessage message = new MailMessage(
"user@domain.com",
"user@domain.com",
"TestMailRefw - " + Guid.NewGuid().ToString(),
"TestMailRefw Implement ability to create RE and FW messages from source MSG file");
"user@domain.com",
"user@domain.com",
"TestMailRefw - " + Guid.NewGuid().ToString(),
"TestMailRefw Implement ability to create RE and FW messages from source MSG file");
client.Send(message);
// Wait for a while
// Wait for a while
ExchangeMessageInfoCollection messageInfoCol = client.ListMessages(client.MailboxInfo.InboxUri);
if(messageInfoCol.Count == 1)
Console.WriteLine("1 message in Inbox");
else
Console.WriteLine("Error! No message in Inbox");
if(messageInfoCol.Count == 1)
Console.WriteLine("1 message in Inbox");
else
Console.WriteLine("Error! No message in Inbox");
MailMessage message1 = new MailMessage(
"user@domain.com",
"user@domain.com",
"TestMailRefw - " + Guid.NewGuid().ToString(),
"TestMailRefw Implement ability to create RE and FW messages from source MSG file");
"user@domain.com",
"user@domain.com",
"TestMailRefw - " + Guid.NewGuid().ToString(),
"TestMailRefw Implement ability to create RE and FW messages from source MSG file");
client.Send(message1);
// Wait for a while
messageInfoCol = client.ListMessages(client.MailboxInfo.InboxUri);
// Wait for a while
messageInfoCol = client.ListMessages(client.MailboxInfo.InboxUri);
if(messageInfoCol.Count == 2)
Console.WriteLine("2 messages in Inbox");
else
Console.WriteLine("Error! No new message in Inbox");
Console.WriteLine("2 messages in Inbox");
else
Console.WriteLine("Error! No new message in Inbox");
MailMessage message2 = new MailMessage(
"user@domain.com",
"user@domain.com",
"TestMailRefw - " + Guid.NewGuid().ToString(),
"TestMailRefw Implement ability to create RE and FW messages from source MSG file");
message2.Attachments.Add(Attachment.CreateAttachmentFromString("Test attachment 1", "Attachment Name 1"));
message2.Attachments.Add(Attachment.CreateAttachmentFromString("Test attachment 2", "Attachment Name 2"));
"user@domain.com",
"user@domain.com",
"TestMailRefw - " + Guid.NewGuid().ToString(),
"TestMailRefw Implement ability to create RE and FW messages from source MSG file");
message2.Attachments.Add(Attachment.CreateAttachmentFromString("Test attachment 1", "Attachment Name 1"));
message2.Attachments.Add(Attachment.CreateAttachmentFromString("Test attachment 2", "Attachment Name 2"));
client.Reply(message2, messageInfoCol[0]);
client.ReplyAll(message2, messageInfoCol[0]);
client.Forward(message2, messageInfoCol[0]);
}
catch(Exception ex)
{
Console.WriteLine("Error in program");
}
}
}
[VB.NET Code Sample]client.ReplyAll(message2, messageInfoCol[0]);
client.Forward(message2, messageInfoCol[0]);
}
catch(Exception ex)
{
Console.WriteLine("Error in program");
}
}
}
Public Shared Function GetEWSClient() As IEWSClient
Const mailboxUri As String = "https://exchange.domain.com/ews/Exchange.asmx"
Const domain As String = ""
Const username As String = "username"
Const password As String = "password"
Dim credential As New NetworkCredential(username, password, domain)
Dim client As IEWSClient = EWSClient.GetEWSClient(mailboxUri, credential)
Return client
End Function
Public Shared Sub TestMailReFw()
Using client As IEWSClient = GetAsposeEWSClient2()
Try
Const mailboxUri As String = "https://exchange.domain.com/ews/Exchange.asmx"
Const domain As String = ""
Const username As String = "username"
Const password As String = "password"
Dim credential As New NetworkCredential(username, password, domain)
Dim client As IEWSClient = EWSClient.GetEWSClient(mailboxUri, credential)
Return client
End Function
Public Shared Sub TestMailReFw()
Using client As IEWSClient = GetAsposeEWSClient2()
Try
Dim message As New MailMessage("user@domain.com", "user@domain.com", "TestMailRefw - " & Guid.NewGuid().ToString(), "TestMailRefw Implement ability to create RE and FW messages from source MSG file")
client.Send(message)
' Wait for a while
' Wait for a while
Dim messageInfoCol As ExchangeMessageInfoCollection = client.ListMessages(client.MailboxInfo.InboxUri)
If messageInfoCol.Count = 1 Then
Console.WriteLine("1 message in Inbox")
Else
Console.WriteLine("Error! No message in Inbox")
End If
If messageInfoCol.Count = 1 Then
Console.WriteLine("1 message in Inbox")
Else
Console.WriteLine("Error! No message in Inbox")
End If
Dim message1 As New MailMessage("user@domain.com", "user@domain.com", "TestMailRefw - " & Guid.NewGuid().ToString(), "TestMailRefw Implement ability to create RE and FW messages from source MSG file")
client.Send(message1)
' Wait for a while
messageInfoCol = client.ListMessages(client.MailboxInfo.InboxUri)
' Wait for a while
messageInfoCol = client.ListMessages(client.MailboxInfo.InboxUri)
If messageInfoCol.Count = 2 Then
Console.WriteLine("2 messages in Inbox")
Else
Console.WriteLine("Error! No new message in Inbox")
End If
Console.WriteLine("2 messages in Inbox")
Else
Console.WriteLine("Error! No new message in Inbox")
End If
Dim message2 As New MailMessage("user@domain.com", "user@domain.com", "TestMailRefw - " & Guid.NewGuid().ToString(), "TestMailRefw Implement ability to create RE and FW messages from source MSG file")
message2.Attachments.Add(Attachment.CreateAttachmentFromString("Test attachment 1", "Attachment Name 1"))
message2.Attachments.Add(Attachment.CreateAttachmentFromString("Test attachment 2", "Attachment Name 2"))
message2.Attachments.Add(Attachment.CreateAttachmentFromString("Test attachment 1", "Attachment Name 1"))
message2.Attachments.Add(Attachment.CreateAttachmentFromString("Test attachment 2", "Attachment Name 2"))
client.Reply(message2, messageInfoCol(0))
client.ReplyAll(message2, messageInfoCol(0))
client.Forward(message2, messageInfoCol(0))
Catch ex As Exception
Console.WriteLine("Error in program")
End Try
End Using
End Sub
Overview: Aspose.Email for .NETclient.ReplyAll(message2, messageInfoCol(0))
client.Forward(message2, messageInfoCol(0))
Catch ex As Exception
Console.WriteLine("Error in program")
End Try
End Using
End Sub
Aspose.Email for .NET is a set of components allowing developers to easily implement email functionality within their ASP.NET web applications, web services & Windows applications. It Supports Outlook PST, EML, MSG & MHT formats. It allows developers to work with SMTP, POP3, FTP & MS Exchange servers. It supports mail merge, iCalendar, customized header & body, header information, embedded files, Twitter & many more. It makes it easy to work with HTML or plain text emails & their attachments.
- Homepage of Aspose.Email for .NET
- Download Aspose.Email for .NET
No comments:
Post a Comment