Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatically open an email from a POP3 and extract an attachment

We have a vendor that sends CSV files as email attachments. These CSV files contain statuses that are imported into our application. I'm trying to automate the process end-to-end, but it currently depends on someone opening an email, saving the attachment to a server share, so the application can use the file.

Since I cannot convince the vendor to change their process, such as offering an FTP location or a Web Service, I'm stuck with trying to automate the existing process.

Does anyone know of a way to programmatically open an email from a POP3 account and extract an attachment? The preferred solution would reside on a Windows 2003 server, be written VB.NET and secure. The application can reside on the same server as the POP3 server, for example, we could setup the free POP3 server that comes with Windows Server and pull against the mail file stored on the file system.

BTW, we are willing to pay for an off-the-shelf solution, if one exists.

Note: I did look at this question but the answer points to a CodeProject solution that doesn't deal with attachments.

like image 258
Josh Avatar asked Jul 21 '09 15:07

Josh


2 Answers

Try Mail.dll email component, it's very affordable, supports attachments national characters and is easy to use, it also supports SSL:

Using pop3 As New Pop3()
    pop3.Connect("mail.server.com") 
    pop3.Login("user", "password")                            

    Dim builder As New MailBuilder()
    For Each uid As String In pop3.GetAll()           
        ' Receive email message'
        Dim mail As IMail = builder.CreateFromEml(pop3.GetMessageByUID(uid))

        'Write out received message'
        Console.WriteLine(mail.Subject)

        'Here you can use mail.Attachmets collection'
        For Each attachment As MimeData In mail.Attachments
            Console.WriteLine(attachment.FileName)
            attachment.Save("c:\" + attachment.FileName)
            ' you can also use attachment.Data here'
        Next attachment

    Next

    pop3.Close(true)   
End Using

You can download it here: http://www.lesnikowski.com/mail.

like image 111
Pawel Lesnikowski Avatar answered Oct 03 '22 15:10

Pawel Lesnikowski


possible duplication of Reading Email using Pop3 in C#

Atleast, there's a shed load of suggestions there that you may find useful

like image 40
Ray Avatar answered Oct 03 '22 14:10

Ray