{"id":1253,"date":"2010-10-25T15:24:51","date_gmt":"2010-10-25T13:24:51","guid":{"rendered":"http:\/\/www.limilabs.com\/blog\/?p=1253"},"modified":"2019-04-16T17:34:13","modified_gmt":"2019-04-16T15:34:13","slug":"receive-emails-using-pop3","status":"publish","type":"post","link":"https:\/\/www.limilabs.com\/blog\/receive-emails-using-pop3","title":{"rendered":"Receive emails using POP3"},"content":{"rendered":"<p>This article describes how to receive email messages using Mail.dll <a href=\"\/mail\">POP3 component<\/a> and POP3 protocol.<\/p>\n<p>As a prerequisite you need to <strong>add reference to Mail.dll<\/strong> to your project. Please check MSDN <a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/ide\/how-to-add-or-remove-references-by-using-the-reference-manager\" rel=\"nofollow\">how to add reference<\/a> article for details.<\/p>\n<p>When your reference is added you need to <strong>import correct namespaces<\/strong>:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/ C#\r\n\r\nusing Limilabs.Mail;\r\nusing Limilabs.Client.POP3;\r\n<\/pre>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\n' VB\r\n\r\nImports Limilabs.Mail\r\nImports Limilabs.Client.POP3\r\n<\/pre>\n<p>First thing you need to do is to <strong>connect to your POP3 server<\/strong>. Use <em>Connect(string host)<\/em> method to connect to the server. Typically POP3 server is working on port 110. You can use <em>Connect(string host, int port)<\/em> overload when you need to specify different port, or <em>ConnectSSL <\/em> methods to use <a href=\"\/blog\/use-ssl-with-pop3\">POP3 over SSL<\/a>.<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/ C#\r\n\r\nusing (Pop3 pop3 = new Pop3())\r\n{\r\n    pop3.Connect(&quot;pop3.example.com&quot;);  \/\/ or ConnectSSL for SSL\r\n    pop3.UseBestLogin(&quot;user&quot;, &quot;password&quot;);\r\n\r\n<\/pre>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\n' VB\r\n\r\nUsing pop3 As New Pop3()\r\n    pop3.Connect(&quot;pop3.example.com&quot;)   ' or ConnectSSL for SSL\r\n    pop3.UseBestLogin(&quot;user&quot;, &quot;password&quot;)\r\n\r\n<\/pre>\n<p>Next step is to <strong>download all unique ids<\/strong> (uids) of the available messages, and iterate through them:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/ C#\r\n\r\nforeach (string uid in pop3.GetAll())\r\n<\/pre>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\n' VB\r\n\r\nFor Each uid As String In pop3.GetAll()\r\n\r\n<\/pre>\n<p>Finally we&#8217;ll use <em>GetMessageByUID<\/em> method to download the message from the server and <em>MailBuilder <\/em>class to <strong>parse it and extract attachments<\/strong>:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/ C#\r\n\r\nvar eml = pop3.GetMessageByUID(uid)\r\nIMail email = new MailBuilder().CreateFromEml(eml);\r\n\r\nConsole.WriteLine(email.Subject);\r\nConsole.WriteLine(email.Text);\r\n<\/pre>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\n' VB\r\n\r\nDim eml = pop3.GetMessageByUID(uid)\r\nDim email As IMail = builder.CreateFromEml(eml)\r\n\r\nConsole.WriteLine(email.Subject)\r\nConsole.WriteLine(email.Text)\r\n<\/pre>\n<p>At that point you can also <a href=\"\/blog\/save-all-attachments-to-disk-using-pop3\">access attachments<\/a>.<\/p>\n<p>Here are the full samples:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/ C# version\r\n\r\nusing System;\r\nusing Limilabs.Mail;\r\nusing Limilabs.Client.POP3;\r\n\r\nclass Program\r\n{\r\n    static void Main(string&#x5B;] args)\r\n    {\r\n        using (Pop3 pop3 = new Pop3())\r\n        {\r\n            pop3.Connect(&quot;pop3.example.com&quot;);  \/\/ or ConnectSSL for SSL\r\n            pop3.UseBestLogin(&quot;user&quot;, &quot;password&quot;);\r\n\r\n            \/\/ Receive all messages and display the subject\r\n            MailBuilder builder = new MailBuilder();\r\n            foreach (string uid in pop3.GetAll())\r\n            {\r\n                IMail email = builder.CreateFromEml(\r\n                  pop3.GetMessageByUID(uid));\r\n\r\n                Console.WriteLine(email.Subject);\r\n                Console.WriteLine(email.Text);\r\n            }\r\n            pop3.Close();\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\n' VB.NET version\r\n\r\nImports Limilabs.Client.POP3\r\nImports Limilabs.Mail\r\n\r\nPublic Module Module1\r\n    Public Sub Main(ByVal args As String())\r\n\r\n        Using pop3 As New Pop3()\r\n            pop3.Connect(&quot;pop3.example.com&quot;)   ' or ConnectSSL for SSL\r\n            pop3.UseBestLogin(&quot;user&quot;, &quot;password&quot;)\r\n\r\n            ' Receive all messages and display the subject\r\n            Dim builder As New MailBuilder()\r\n            For Each uid As String In pop3.GetAll()\r\n\r\n                Dim email As IMail = builder.CreateFromEml( _\r\n                    pop3.GetMessageByUID(uid))\r\n\r\n                Console.WriteLine(email.Subject)\r\n                Console.WriteLine(email.Text)\r\n            Next\r\n            pop3.Close()\r\n        End Using\r\n\r\n    End Sub\r\nEnd Module\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>This article describes how to receive email messages using Mail.dll POP3 component and POP3 protocol. As a prerequisite you need to add reference to Mail.dll to your project. Please check MSDN how to add reference article for details. When your reference is added you need to import correct namespaces: \/\/ C# using Limilabs.Mail; using Limilabs.Client.POP3; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[15,33,42,57],"class_list":["post-1253","post","type-post","status-publish","format-standard","hentry","category-mail-dll","tag-c","tag-email-component","tag-pop3","tag-vb-net"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/posts\/1253"}],"collection":[{"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/comments?post=1253"}],"version-history":[{"count":7,"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/posts\/1253\/revisions"}],"predecessor-version":[{"id":5497,"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/posts\/1253\/revisions\/5497"}],"wp:attachment":[{"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/media?parent=1253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/categories?post=1253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/tags?post=1253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}