<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lesnikowski Blog &#187; Protocol</title>
	<atom:link href="http://www.lesnikowski.com/blog/category/protocol/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lesnikowski.com/blog</link>
	<description>EMAIL IMAP POP3 SMTP FTP FTPS barcode components blog</description>
	<lastBuildDate>Sun, 05 Feb 2012 14:10:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Unique ID in POP3 protocol</title>
		<link>http://www.lesnikowski.com/blog/unique-id-in-pop3-protocol/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unique-id-in-pop3-protocol</link>
		<comments>http://www.lesnikowski.com/blog/unique-id-in-pop3-protocol/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 21:40:10 +0000</pubDate>
		<dc:creator>Pawel Lesnikowski</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Protocol]]></category>
		<category><![CDATA[Mail.dll]]></category>
		<category><![CDATA[POP3]]></category>

		<guid isPermaLink="false">http://www.lesnikowski.com/blog/?p=1636</guid>
		<description><![CDATA[RFC 1939 specification says: &#8220;The unique-id of a message is an arbitrary server-determined string, [...], which uniquely identifies a message within a maildrop and which persists across sessions.&#8221; &#8220;The server should never reuse an unique-id in a given maildrop, for as long as the entity using the unique-id exists.&#8221; So in theory if the email [...]]]></description>
			<content:encoded><![CDATA[<p>RFC 1939 specification says:</p>
<p><em>&#8220;The unique-id of a message is an arbitrary server-determined string, [...], which uniquely identifies a message within a maildrop and which persists across sessions.&#8221;</em></p>
<p><em>&#8220;The server <strong>should</strong> never reuse an unique-id in a given maildrop, for as long as the <strong>entity using the unique-id exists</strong>.&#8221;</em></p>
<p>So in theory if the email is deleted server may reuse the same unique-id.</p>
<p><em>&#8220;While it is generally preferable for server implementations to store arbitrarily assigned unique-ids in the maildrop, this specification is intended to permit unique-ids to be calculated as a hash of the message.  </p>
<p>Clients should be able to handle a situation where two identical copies of a message in a maildrop have the same unique-id.&#8221;</em></p>
<p>Mail.dll will not throw exception in such case, but please note that as internally Mail.dll uses dictionaries to store unique-ids, Pop3.GetAll() method will not return duplicates.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lesnikowski.com/blog/unique-id-in-pop3-protocol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unique ID in IMAP protocol</title>
		<link>http://www.lesnikowski.com/blog/unique-id-in-imap-protocol/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=unique-id-in-imap-protocol</link>
		<comments>http://www.lesnikowski.com/blog/unique-id-in-imap-protocol/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 21:40:03 +0000</pubDate>
		<dc:creator>Pawel Lesnikowski</dc:creator>
				<category><![CDATA[Component]]></category>
		<category><![CDATA[Protocol]]></category>
		<category><![CDATA[IMAP]]></category>
		<category><![CDATA[Mail.dll]]></category>

		<guid isPermaLink="false">http://www.lesnikowski.com/blog/?p=1638</guid>
		<description><![CDATA[RFC 3501 specification says: &#8220;2.3.1.1. Unique Identifier (UID) Message Attribute A 32-bit value assigned to each message, which when used with the unique identifier validity value (see below) forms a 64-bit value that MUST NOT refer to any other message in the mailbox or any subsequent mailbox with the same name forever.&#8221; &#8220;The unique identifier [...]]]></description>
			<content:encoded><![CDATA[<p>RFC 3501 specification says:</p>
<p><em>&#8220;2.3.1.1. Unique Identifier (UID) Message Attribute</p>
<p>A 32-bit value assigned to each message, which when used with the unique identifier validity value (see below) forms a 64-bit value that <strong>MUST NOT</strong> refer to any other message in the <strong>mailbox or any subsequent mailbox</strong> with the same name forever.&#8221;</em></p>
<p><em>&#8220;The unique identifier of a message <strong>MUST NOT</strong> change during the session, and <strong>SHOULD NOT</strong> change between sessions.&#8221;</em></p>
<p><em>&#8220;Any change of unique identifiers between sessions <strong>MUST</strong> be detectable using the <strong>UIDVALIDITY </strong> mechanism&#8221;</em></p>
<p><em>&#8220;The unique identifier validity value is sent in a UIDVALIDITY response code in an OK untagged response at mailbox selection time.&#8221;</em></p>
<p>Any change of unique identifiers between session causes the change of <strong>FolderStatus.UIDValidity</strong>:</p>
<pre class="brush: csharp;">
using(Imap client = new Imap())
{
    client.Connect(&quot;imap.example.org&quot;);
    FolderStatus folderStatus = client.Select(&quot;Inbox&quot;);
    Console.WriteLine(
        &quot;Folder UIDValidity: &quot; + folderStatus.UIDValidity);
    client.Close();
}
</pre>
<pre class="brush: vb;">
Using client As New Imap()
    client.Connect(&quot;imap.example.org&quot;)
    Dim folderStatus As FolderStatus = client.Select(&quot;Inbox&quot;)
    Console.WriteLine( _
        &quot;Folder UIDValidity: &quot; + folderStatus.UIDValidity)
    client.Close()
End Using
</pre>
<p>Unfortunately: &#8220;There is no assurance that the UIDVALIDITY values of two mailboxes be different, so the UIDVALIDITY in no way identifies a mailbox.&#8221;</p>
<p>This means that:</p>
<ul>
<li> UID of the email may be not unique on the server</li>
<li> FolderStatus.UIDValidity + UID may be not unique on the server</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lesnikowski.com/blog/unique-id-in-imap-protocol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>POP3 vs IMAP</title>
		<link>http://www.lesnikowski.com/blog/pop3-vs-imap/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pop3-vs-imap</link>
		<comments>http://www.lesnikowski.com/blog/pop3-vs-imap/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 16:15:25 +0000</pubDate>
		<dc:creator>Pawel Lesnikowski</dc:creator>
				<category><![CDATA[Protocol]]></category>
		<category><![CDATA[IMAP]]></category>
		<category><![CDATA[Mail.dll]]></category>
		<category><![CDATA[POP3]]></category>

		<guid isPermaLink="false">http://www.lesnikowski.com/blog/?p=1032</guid>
		<description><![CDATA[POP3 and IMAP are application-layer Internet standard protocols used by local e-mail clients to retrieve e-mails from a remote server over a TCP/IP connection. Virtually all modern e-mail clients and mail servers support both protocols as a means of transferring e-mail messages from a server. They are both text-based. Both transmit more or less same [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.lesnikowski.com/blog/wp-content/uploads/2009/12/mail.png" alt="" title="mail" width="157" height="149" class="alignleft size-full wp-image-360" /> </p>
<p>POP3 and IMAP are application-layer Internet standard protocols <strong>used by local e-mail clients</strong> to retrieve e-mails from a remote server over a TCP/IP connection. Virtually all modern e-mail clients and mail servers support both protocols as a means of transferring e-mail messages from a server.</p>
<p>They are both <strong>text-based</strong>. Both transmit more or less<strong> same amount of data</strong>.</p>
<p>Here is the brief comparison of both:</p>
<table>
<tbody>
<tr>
<th></th>
<th>POP3</th>
<th>IMAP</th>
<th></th>
</tr>
<tr>
<td>Intended message store</td>
<td>Client</td>
<td>Server</td>
</tr>
<tr>
<td>Download message</td>
<td>YES</td>
<td>YES</td>
</tr>
<tr>
<td>Download message headers</td>
<td>YES</td>
<td>YES</td>
</tr>
<tr>
<td>Download specific message part (single attachment)</td>
<td>NO</td>
<td>YES</td>
</tr>
<tr>
<td>Delete message</td>
<td>YES</td>
<td>YES</td>
</tr>
<tr>
<td>Send message</td>
<td>NO (use SMTP)</td>
<td>NO (use SMTP)</td>
</tr>
<tr>
<td>Get only unseen messages</td>
<td>NO</td>
<td>YES</td>
</tr>
<tr>
<td>Mark message Seen/Unseen</td>
<td>NO</td>
<td>YES</td>
</tr>
<tr>
<td>Server side search</td>
<td>NO</td>
<td>YES</td>
</tr>
<tr>
<td>Folders</td>
<td>NO</td>
<td>YES</td>
</tr>
<tr>
<td>Sent items</td>
<td>NO</td>
<td>YES</td>
</tr>
<tr>
<td>SSL</td>
<td>YES</td>
<td>YES</td>
</tr>
<tr>
<td>Push email</td>
<td>NO</td>
<td>YES</td>
</tr>
</tbody>
</table>
<p><strong>Mail.dll supports both POP3 and IMAP</strong> (and SMTP), give it a try at:<br />
<a href="http://www.lesnikowski.com/mail/">http://www.lesnikowski.com/mail/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lesnikowski.com/blog/pop3-vs-imap/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

