MailBee.NET Objects 3.1

TimeStamp Class

Provides properties and methods for examining a time stamp representing a moment when the message was received by a mail gateway or a mail server.

For a list of all members of this type, see TimeStamp Members.

System.Object
   MailBee.Mime.TimeStamp

public class TimeStamp

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

When a mail message gets sent, it passes through one or more mail servers (gateways) during the delivery. Each mail server usually alters the message by adding a new Received header which contains the information about this server and time stamp of the moment when the message passed through this server. TimeStamp class represents the information extracted from a single Received header during parsing the message.

All TimeStamp objects are stored in TimeStampCollection which represents all Received headers of the message. You can access this collection using TimeStamps property.

The last TimeStamp object in the collection usually represents the moment when the message was received by the destination mail server. MailBee uses this TimeStamp object to obtain DateReceived value.

Note   Some mail servers do not add Received headers. Thus, no time stamps will be available to the application. In this case, the only way to obtain the date when the message was received is to get Envelope of the message using IMAP and get the date from DateReceived property. Also, even if Received header itself is available, some of its fields may be missing.

Example

This sample loads the message from .EML file and displays all the values extracted from the time stamps of this message.

[C#]
// To use the code below, import MailBee namespaces at the top of your code.
using MailBee;
using MailBee.Mime;

// The actual code (put it into a method of your class)
MailMessage msg = new MailMessage();
msg.LoadMessage(@"C:\Docs\TestMail.eml");
foreach (TimeStamp ts in msg.TimeStamps)
{
    Console.WriteLine(string.Format("Bias: {0}\r\nBy: {1}\r\nDate: {2}\r\nDateAsString: {3}\r\nFor: {4}\r\nFrom: {5}\r\nID: {6}\r\nWith: {7}",
        ts.Bias, ts.By, ts.Date.ToString(), ts.DateAsString, ts.For, ts.From, ts.ID, ts.With));
}
[Visual Basic]
' To use the code below, import MailBee namespaces at the top of your code.
Imports MailBee
Imports MailBee.Mime

' The actual code (put it into a method of your class)
Dim msg As New MailMessage
msg.LoadMessage("C:\Docs\TestMail.eml")
For Each ts As TimeStamp In msg.TimeStamps
    Console.WriteLine(String.Format("Bias: {0}\r\nBy: {1}\r\nDate: {2}\r\nDateAsString: {3}\r\nFor: {4}\r\nFrom: {5}\r\nID: {6}\r\nWith: {7}", _
        ts.Bias, ts.By, ts.Date.ToString(), ts.DateAsString, ts.For, ts.From, ts.ID, ts.With))
Next

Requirements

Namespace: MailBee.Mime

Assembly: MailBee.NET (in MailBee.NET.dll)

See Also

TimeStamp Members | MailBee.Mime Namespace | TimeStampCollection