如何从.Net阅读电子邮件及其附件?

时间:2013-12-13 11:54:06

标签: .net vb.net windows email-integration

我必须每隔x分钟从邮箱中读取传入的电子邮件。目前我正在通过hmailserver发送电子邮件,所以假设这将是一个很好的起点。

如果我创建一个新邮箱sendtome@domain.com(该域名已经准备好使用rdns等设置),有一种简单的方法可以从.net 4中读取电子邮件及其附件(我从未阅读过代码中的电子邮件之前没有想法这里)。

我正在考虑运行Windows服务,每5分钟检查一次邮箱,并可以阅读和处理电子邮件及其csv附件。

任何帮助和建议都会很棒。

1 个答案:

答案 0 :(得分:1)

我曾经做过一个必须做你想要的剧本。

遗憾的是,.NET中没有任何默认函数(据我所知,如果我错了,请纠正我),所以我们不得不去外部库。我们使用免费软件OpenPOP library

使用以下函数检索消息:

Private Function GetMails(ByVal hostname As String, ByVal port As Integer, ByVal useSsl As Boolean, ByVal username As String, ByVal password As String) As List(Of OpenPop.Mime.Message)
        Dim client As OpenPop.Pop3.Pop3Client = New OpenPop.Pop3.Pop3Client()
        client.Connect(hostname, port, useSsl)
        client.Authenticate(username, password)

        Dim messageCount As Integer = client.GetMessageCount()

        Dim allMessages As List(Of OpenPop.Mime.Message) = New List(Of OpenPop.Mime.Message)(messageCount)

        For count As Integer = 1 To messageCount
            Try
                allMessages.Add(client.GetMessage(count))
            Catch ex As OpenPop.Pop3.Exceptions.PopServerException
                allMessages.Add(Nothing)
            End Try
        Next
        Return allMessages
    End Function

现在剩下的就是阅读邮件消息并使用标准IO技术来存储他们的附件。

有关所用类的更多信息应该在我链接的OpenPOP项目中找到。