MailBee.NET Objects 4.0

Imap.UploadMessage Method (MailMessage, String)

Uploads a mail message to the specified folder.

public bool UploadMessage(
   MailMessage msg,
   string folderName
);

Parameters

msg
A reference to the MailMessage object representing the message to be uploaded.
folderName
The full name of the folder to upload the message to.

Return Value

true if the message was uploaded successfully; otherwise, false.

Remarks

This method implements APPEND command of the IMAP4 protocol. For uploaded messages, the mail server automatically assigns "\Recent" flag. The date of receiving the message by the server (INTERNALDATE in IMAP4 terms) will be set to the current datetime/timezone of the local computer (not the mail server).

To upload a file, the developer can first load it into MailMessage object using LoadMessage method, and then call UploadMessage passing a reference to this MailMessage object. There is no extra overhead on parsing the message since LoadMessage just reads a file into memory. The MailMessage won't parse the contained message unless the application starts accessing its properties or methods (so-called "lazy" model).

To upload a mail message just sent using Smtp component, the developer call UploadMessage method passing a reference to the Message property (see UploadMessage sample).

To obtain the UID value assigned to the uploaded message, the developer should either examine DestUidString property of UidPlusResult object passed in res parameter of UploadMessage method (the server must support UIDPLUS capability), or obtain UidNext value calling GetFolderStatus method before making upload (this approach is compatible with all servers).

Exceptions

Exception TypeCondition
MailBeeExceptionAn error occurred and ThrowExceptions is true.

Example

This sample loads the message from a file and uploads it into "Archive" folder.

The sample assumes "Archive" folder had already been created in the past. To learn how to make sure the folder exists, see UploadMessage or UploadMessage samples.

[C#]
using System;
using MailBee;
using MailBee.ImapMail;
using MailBee.Mime;

class Sample
{
    static void Main(string[] args)
    {
        Imap imp = new Imap();

        // Connect to the IMAP4 server and log in the account.
        imp.Connect("mail.company.com");
        imp.Login("jdoe@company.com", "secret");

        // Load the message from C:\Temp\message.eml file.
        MailMessage msg = new MailMessage();
        msg.LoadMessage(@"C:\Temp\message.eml");

        // Upload the message into "Archive" folder.
        imp.UploadMessage(msg, "Archive");

        // Disconnect from the server.
        imp.Disconnect();
    }
}
[Visual Basic]
Imports System
Imports MailBee
Imports MailBee.ImapMail
Imports MailBee.SmtpMail
Imports MailBee.Mime

Module Sample
    Sub Main()
        Dim imp As New Imap

        ' Connect to the IMAP4 server and log in the account.
        imp.Connect("mail.company.com")
        imp.Login("jdoe@company.com", "secret")

        ' Load the message from C:\Temp\message.eml file.
        Dim msg As New MailMessage
        msg.LoadMessage("C:\Temp\message.eml")

        ' Upload the message into "Archive" folder.
        imp.UploadMessage(msg, "Archive")

        ' Disconnect from the server.
        imp.Disconnect()
    End Sub
End Module

See Also

Imap Class | MailBee.ImapMail Namespace | Imap.UploadMessage Overload List