{"id":3162,"date":"2013-12-01T13:37:32","date_gmt":"2013-12-01T11:37:32","guid":{"rendered":"http:\/\/www.limilabs.com\/blog\/?p=3162"},"modified":"2019-03-15T17:06:49","modified_gmt":"2019-03-15T15:06:49","slug":"upload-email-to-sent-folder-after-sending","status":"publish","type":"post","link":"https:\/\/www.limilabs.com\/blog\/upload-email-to-sent-folder-after-sending","title":{"rendered":"Upload email to Sent folder after sending"},"content":{"rendered":"<p>Some SMTP servers automatically put sent messages in the sent folder, but this is not a SMTP protocol requirement and many servers don&#8217;t do that.<\/p>\n<p>In such case, you&#8217;ll need to <strong>manually upload message<\/strong> to the sent folder using <strong>IMAP<\/strong>. Unfortunately there is no standard that would allow checking, if SMTP server puts send messages in Sent folder.<\/p>\n<h2>Create email message<\/h2>\n<p>First we&#8217;ll create new email message:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/ C#\r\n\r\nMailBuilder builder = new MailBuilder();\r\nbuilder.Subject = @&quot;Subject&quot;;\r\nbuilder.Html = @&quot;Html with an image: &lt;img src=&quot;&quot;cid:lena&quot;&quot; \/&gt;&quot;;\r\nbuilder.From.Add(new MailBox(&quot;alice@mail.com&quot;, &quot;Alice&quot;));\r\nbuilder.To.Add(new MailBox(&quot;bob@mail.com&quot;, &quot;Bob&quot;));\r\n\r\nMimeData visual = builder.AddVisual(@&quot;c:\\lena.jpeg&quot;);\r\nvisual.ContentId = &quot;lena&quot;;\r\n\r\nMimeData attachment = builder.AddAttachment(@&quot;c:\\tmp.doc&quot;);\r\nattachment.FileName = &quot;document.doc&quot;;\r\n\r\nIMail email = builder.Create();\r\n<\/pre>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\n' VB.NET\r\n\r\nDim builder As MailBuilder = New MailBuilder()\r\nbuilder.Subject = &quot;Subject&quot;\r\nbuilder.Html = &quot;Html with an image: &lt;img src=&quot;&quot;cid:lena&quot;&quot; \/&gt;&quot;\r\nbuilder.From.Add(New MailBox(&quot;alice@mail.com&quot;, &quot;Alice&quot;))\r\nbuilder.&#x5B;To].Add(New MailBox(&quot;bob@mail.com&quot;, &quot;Bob&quot;))\r\n\r\nDim visual As MimeData = builder.AddVisual(&quot;c:\\lena.jpeg&quot;)\r\nvisual.ContentId = &quot;lena&quot;\r\n\r\nDim attachment As MimeData = builder.AddAttachment(&quot;c:\\tmp.doc&quot;)\r\nattachment.FileName = &quot;document.doc&quot;\r\n\r\nDim email As IMail = builder.Create()\r\n<\/pre>\n<p>Alternatively you can use fluent interface to create an email:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/ C# \r\n\r\nIMail email = Limilabs.Mail.Fluent.Mail\r\n    .Html(@&quot;Html with an image: &lt;img src=&quot;&quot;cid:lena&quot;&quot; \/&gt;&quot;)\r\n    .AddVisual(@&quot;c:\\lena.jpeg&quot;).SetContentId(&quot;lena&quot;)\r\n    .AddAttachment(@&quot;c:\\tmp.doc&quot;).SetFileName(&quot;document.doc&quot;)\r\n    .To(&quot;to@example.com&quot;)\r\n    .From(&quot;from@example.com&quot;)\r\n    .Subject(&quot;Subject&quot;)\r\n    .Create();\r\n<\/pre>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\n' VB.NET\r\n\r\nDim email As IMail = Mail _\r\n    .Html(&quot;Html with an image: &lt;img src=&quot;&quot;cid:lena&quot;&quot; \/&gt;&quot;) _\r\n    .AddVisual(&quot;C:\\lena.jpeg&quot;).SetContentId(&quot;lena&quot;) _\r\n    .AddAttachment(&quot;C:\\tmp.doc&quot;).SetFileName(&quot;document.doc&quot;) _\r\n    .To(&quot;to@example.com&quot;) _\r\n    .From(&quot;from@example.com&quot;) _\r\n    .Subject(&quot;Subject&quot;) _\r\n    .Create()\r\n<\/pre>\n<h2>Send email message<\/h2>\n<p>Then we&#8217;ll send it using SMTP protocol:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/ C#\r\n\r\nISendMessageResult result;\r\nusing (Smtp smtp = new Smtp())\r\n{\r\n    smtp.Connect(&quot;smtp.server.com&quot;);     \/\/ or ConnectSSL for SSL\r\n    smtp.UseBestLogin(&quot;user&quot;, &quot;password&quot;);\r\n\r\n    result = smtp.SendMessage(email);\r\n\r\n    smtp.Close();\r\n}\r\n<\/pre>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\n' VB.NET\r\n\r\nDim result As ISendMessageResult\r\nUsing smtp As New Smtp()\r\n    smtp.Connect(&quot;smtp.server.com&quot;)     ' or ConnectSSL for SSL\r\n    smtp.UseBestLogin(&quot;user&quot;, &quot;password&quot;)\r\n\r\n    result = smtp.SendMessage(email)\r\n\r\n    smtp.Close()\r\nEnd Using\r\n<\/pre>\n<h2>Upload email message<\/h2>\n<p>Finally we&#8217;ll connect to IMAP server, get Sent folder and upload message to it:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/ C#\r\n\r\nif (result.Status == SendMessageStatus.Success)\r\n{\r\n    using (Imap imap = new Imap())\r\n    {\r\n        imap.Connect(&quot;imap.server.com&quot;);     \/\/ or ConnectSSL for SSL\r\n        imap.UseBestLogin(&quot;user&quot;, &quot;password&quot;);\r\n\r\n        FolderInfo sent = new CommonFolders(imap.GetFolders()).Sent;\r\n        imap.UploadMessage(sent, email);\r\n\r\n        imap.Close();\r\n    }\r\n}\r\n<\/pre>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\n' VB.NET\r\n\r\nIf result.Status = SendMessageStatus.Success Then\r\n    Using imap As New Imap()\r\n        imap.Connect(&quot;imap.server.com&quot;)\t\t' or ConnectSSL for SSL\r\n        imap.UseBestLogin(&quot;user&quot;, &quot;password&quot;)\r\n\r\n        Dim sent As FolderInfo = New CommonFolders(imap.GetFolders()).Sent\r\n        imap.UploadMessage(sent, email)\r\n\r\n        imap.Close()\r\n   End Using\r\nEnd If\r\n<\/pre>\n<h2>Entire code<\/h2>\n<p>Here&#8217;s the full code:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n\/\/ C#\r\n\r\nMailBuilder builder = new MailBuilder();\r\nbuilder.Subject = @&quot;Subject&quot;;\r\nbuilder.Html = @&quot;Html with an image: &lt;img src=&quot;&quot;cid:lena&quot;&quot; \/&gt;&quot;;\r\nbuilder.From.Add(new MailBox(&quot;alice@mail.com&quot;, &quot;Alice&quot;));\r\nbuilder.To.Add(new MailBox(&quot;bob@mail.com&quot;, &quot;Bob&quot;));\r\n\r\nMimeData visual = builder.AddVisual(@&quot;c:\\lena.jpeg&quot;);\r\nvisual.ContentId = &quot;lena&quot;;\r\n\r\nMimeData attachment = builder.AddAttachment(@&quot;c:\\tmp.doc&quot;);\r\nattachment.FileName = &quot;document.doc&quot;;\r\n\r\nIMail email = builder.Create();\r\n\r\nISendMessageResult result;\r\nusing (Smtp smtp = new Smtp())\r\n{\r\n    smtp.Connect(&quot;smtp.server.com&quot;);    \/\/ or ConnectSSL for SSL\r\n    smtp.UseBestLogin(&quot;user&quot;, &quot;password&quot;);\r\n\r\n    result = smtp.SendMessage(email);\r\n\r\n    smtp.Close();\r\n}\r\n\r\nif (result.Status == SendMessageStatus.Success)\r\n{\r\n    using (Imap imap = new Imap())\r\n    {\r\n        imap.Connect(&quot;imap.server.com&quot;);     \/\/ or ConnectSSL for SSL\r\n        imap.UseBestLogin(&quot;user&quot;, &quot;password&quot;);\r\n\r\n        FolderInfo sent = new CommonFolders(imap.GetFolders()).Sent;\r\n        imap.UploadMessage(sent, email);\r\n\r\n        imap.Close();\r\n    }\r\n}\r\n\r\n<\/pre>\n<pre class=\"brush: vb; title: ; notranslate\" title=\"\">\r\n' VB.NET\r\n\r\nDim builder As MailBuilder = New MailBuilder()\r\nbuilder.Subject = &quot;Subject&quot;\r\nbuilder.Html = &quot;Html with an image: &lt;img src=&quot;&quot;cid:lena&quot;&quot; \/&gt;&quot;\r\nbuilder.From.Add(New MailBox(&quot;alice@mail.com&quot;, &quot;Alice&quot;))\r\nbuilder.&#x5B;To].Add(New MailBox(&quot;bob@mail.com&quot;, &quot;Bob&quot;))\r\n\r\nDim visual As MimeData = builder.AddVisual(&quot;c:\\lena.jpeg&quot;)\r\nvisual.ContentId = &quot;lena&quot;\r\n\r\nDim attachment As MimeData = builder.AddAttachment(&quot;c:\\tmp.doc&quot;)\r\nattachment.FileName = &quot;document.doc&quot;\r\n\r\nDim email As IMail = builder.Create()\r\n\r\nDim result As ISendMessageResult\r\nUsing smtp As New Smtp()\r\n    smtp.Connect(&quot;smtp.server.com&quot;)\t' or ConnectSSL for SSL\r\n    smtp.UseBestLogin(&quot;user&quot;, &quot;password&quot;)\r\n\r\n    result = smtp.SendMessage(email)\r\n\r\n    smtp.Close()\r\nEnd Using\r\n\r\nIf result.Status = SendMessageStatus.Success Then\r\n    Using imap As New Imap()\r\n        imap.Connect(&quot;imap.server.com&quot;)\t\t' or ConnectSSL for SSL\r\n        imap.UseBestLogin(&quot;user&quot;, &quot;password&quot;)\r\n\r\n        Dim sent As FolderInfo = New CommonFolders(imap.GetFolders()).Sent\r\n        imap.UploadMessage(sent, email)\r\n\r\n    imap.Close()\r\nEnd Using\r\nEnd If\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Some SMTP servers automatically put sent messages in the sent folder, but this is not a SMTP protocol requirement and many servers don&#8217;t do that. In such case, you&#8217;ll need to manually upload message to the sent folder using IMAP. Unfortunately there is no standard that would allow checking, if SMTP server puts send messages [&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,28,50,57],"class_list":["post-3162","post","type-post","status-publish","format-standard","hentry","category-mail-dll","tag-c","tag-imap","tag-smtp","tag-vb-net"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/posts\/3162"}],"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=3162"}],"version-history":[{"count":12,"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/posts\/3162\/revisions"}],"predecessor-version":[{"id":5485,"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/posts\/3162\/revisions\/5485"}],"wp:attachment":[{"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/media?parent=3162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/categories?post=3162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.limilabs.com\/blog\/wp-json\/wp\/v2\/tags?post=3162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}