ImapCopyMessages Method (String, Boolean, String, UidPlusResult) |
Copies the specified messages from the currently selected folder to the specified folder,
and retrieves UIDs assigned to the copied messages in the destination folder.
Namespace: MailBee.ImapMailAssembly: MailBee.NET (in MailBee.NET.dll) Version: 12.5.0 build 687 for .NET 4.5
Syntax public bool CopyMessages(
string messageIndexSet,
bool indexIsUid,
string targetFolderName,
UidPlusResult result
)
Public Function CopyMessages (
messageIndexSet As String,
indexIsUid As Boolean,
targetFolderName As String,
result As UidPlusResult
) As Boolean
Parameters
- messageIndexSet
- Type: SystemString
A message sequence string containing ordinal message numbers or UIDs. Can be composed manually or using ToString. - indexIsUid
- Type: SystemBoolean
If true, messageIndexSet is treated as a sequence of UIDs; otherwise, as a sequence of ordinal message numbers. - targetFolderName
- Type: SystemString
The full name of the destination folder. - result
- Type: MailBee.ImapMailUidPlusResult
A reference to the UidPlusResult object to be filled with the outcome
of the copy operation reported by UIDPLUS enabled server (the outcome includes the UIDs
of the source messages being copied, the UIDs assigned to the copied messages in
the destination folder, and the UIDVALIDITY of the destination folder),
or a null reference (Nothing in Visual Basic) if the application does not need this information.
Return Value
Type:
Booleantrue if the messages were copied successfully; otherwise,
false.
Exceptions Remarks To learn how to specify a valid message sequence (messageIndexSet value), see DownloadEnvelopes(String, Boolean) topic.
When result is specified and the server supports UIDPLUS extension, CopyMessages(String, Boolean, String, UidPlusResult) method will
set the supplied UidPlusResult object properties as below:
Property | Value |
---|
IsValid | true |
IsSupported | true |
SrcUids | The UidCollection object containing the UIDs of the messages being copied. |
SrcUidString | The string containing the message sequence of UIDs of the messages being copied. |
DestUids | The UidCollection object containing the UIDs assigned to the copied messages in targetFolderName folder. |
DestUidString | The string containing the message sequence of UIDs assigned to the copied messages in targetFolderName folder. |
DestUidValidity | The UIDVALIDITY of the targetFolderName folder. |
If UIDPLUS capability is not supported by the server,
IsSupported will be set to
false.
Examples This sample copies last 3 messages from the inbox folder to the Sent folder (it's assumed the Sent folder already exists and the inbox
contains at least 3 messages). The UIDs assigned to the copied messages in the destination folder are displayed if UIDPLUS capability is supported by the server.
using System;
using MailBee;
using MailBee.ImapMail;
class Sample
{
static void Main(string[] args)
{
Imap imp = new Imap();
imp.Connect("mail.company.com");
imp.Login("jdoe@company.com", "secret");
imp.SelectFolder("INBOX");
UidPlusResult res = new UidPlusResult();
string range = (imp.MessageCount - 2).ToString() + ":*";
imp.CopyMessages(range, false, "Sent", res);
if (res.IsSupported)
{
Console.WriteLine("UIDs assigned to the copied messages are " +
res.DestUidString);
}
else
{
Console.WriteLine("Sorry, UIDPLUS is not supported by the server");
}
imp.Disconnect();
}
}
Imports System
Imports MailBee
Imports MailBee.ImapMail
Module Sample
Sub Main(ByVal args As String())
Dim imp As New Imap
imp.Connect("mail.company.com")
imp.Login("jdoe@company.com", "secret")
imp.SelectFolder("INBOX")
Dim res As New UidPlusResult
Dim range As String = (imp.MessageCount - 2).ToString() & ":*"
imp.CopyMessages(range, False, "Sent", res)
If res.IsSupported Then
Console.WriteLine("UIDs assigned to the copied messages are " & _
res.DestUidString)
Else
Console.WriteLine("Sorry, UIDPLUS is not supported by the server")
End If
imp.Disconnect()
End Sub
End Module
See Also