C# Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

C# Examples

Bounced Mail
Character Encoding
Digital Certificates
Digital Signatures
Email
FTP
HTML to XML
HTTP
IMAP
Encryption
MHT / HTML Email
MIME
RSA Encryption
S/MIME
Socket
Spider
Tar Archive
Upload
XML
XMP
Zip Compression


More Examples...
Email Object
POP3
SMTP
RSS
Atom
String
Byte Array
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
Bzip2
LZW
Bz2
Icon

 

 

 

 

 

 

Reading Unread POP3 Email

Download Chilkat .NET for 2.0 / 3.5 Framework

Download Chilkat .NET for 1.0 / 1.1 Framework

The POP3 protocol does not provide the ability to ask the server which emails are "unread". Furthermore, a pure POP3 server does not even keep this information. Some servers, such as Exchange Server, expose both POP3 and IMAP interfaces. In these cases, information about read/unread status exists on the server, but it is only available via the IMAP protocol. Email clients such as Outlook and Thunderbird keep read/unread information on the client computer. This example demonstrates how UIDLs can be saved to track and read "unread" email.

//  The mailman object is used for receiving (POP3)
//  and sending (SMTP) email.
Chilkat.MailMan mailman = new Chilkat.MailMan();

//  Any string argument automatically begins the 30-day trial.
bool success;
success = mailman.UnlockComponent("30-day trial");
if (success != true) {
    MessageBox.Show("Component unlock failed");
    return;
}

//  Set the POP3 server's hostname
mailman.MailHost = "mail.chilkatsoft.com";

//  Set the POP3 login/password.
mailman.PopUsername = "***";
mailman.PopPassword = "***";

//  We're keeping a list of already-seen UIDLs in a text file:
//  If this is the first time you're running this example,
//  create an empty text file named "seenUidls.txt"
Chilkat.StringArray saSeenUidls = new Chilkat.StringArray();
success = saSeenUidls.LoadFromFile("seenUidls.txt");
if (success != true) {
    MessageBox.Show("failed to load seenUidls.txt");
    return;
}

//  Get the complete list of UIDLs on the mail server.
Chilkat.StringArray saUidls;
saUidls = mailman.GetUidls();

if (saUidls == null ) {
    MessageBox.Show(mailman.LastErrorText);
    return;
}

//  We don't have set operators (yet) on the StringArray object,
//  so create a new string array object (it's an object, not an actual array)
//  and add the UIDLs from saUidls that aren't already seen.
Chilkat.StringArray saUnseenUidls = new Chilkat.StringArray();

int i;
int n;
n = saUidls.Count;
for (i = 0; i <= n - 1; i++) {
    if (saSeenUidls.Contains(saUidls.GetString(i)) != true) {
        saUnseenUidls.Append(saUidls.GetString(i));
    }

}

if (saUnseenUidls.Count == 0) {
    MessageBox.Show("No unseen emails!");

    return;
}

//  Download in full the unseen emails:
Chilkat.EmailBundle bundle;

bundle = mailman.FetchMultiple(saUnseenUidls);
if (bundle == null ) {
    MessageBox.Show(mailman.LastErrorText);

    return;
}

Chilkat.Email email;
for (i = 0; i <= bundle.MessageCount - 1; i++) {
    email = bundle.GetEmail(i);
    textBox1.Text += email.From + "\r\n";
    textBox1.Refresh();
    textBox1.Text += email.Subject + "\r\n";
    textBox1.Refresh();
    textBox1.Text += "----" + "\r\n";
    textBox1.Refresh();

}

//  We've seen all the emails, save saUidls to "seenUidls.txt"
saUidls.SaveToFile("seenUidls.txt");


 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2008 Chilkat Software, Inc. All Rights Reserved.

Email Component · XML Parser