【问题标题】:How to read emails and etheir attachment from .Net?如何从 .Net 阅读电子邮件及其附件?
【发布时间】:2013-12-13 11:54:06
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: .net vb.net windows email


    【解决方案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 项目中找到。

    【讨论】:

    • FoxHound 对此表示感谢。我将研究 OpenPop 作为初学者。您是否使用 Windows 服务来完成我想做的所有这些事情?
    • 这是一个带有我们正在使用的调度程序的控制台脚本,但是这个基本代码应该可以在任何类型的项目中使用。
    • 谢谢。将其作为控制台脚本而不是 Windows servive 的任何好处 - 我什至从未想过控制台脚本。
    • 我对windows服务没有太多经验,所以我不知道一个比另一个有什么好处。当时只是要求将其制作为脚本。顺便说一句,既然它似乎对你有帮助,你能这样标记答案吗?
    • 好的,谢谢。我想经过一些研究后我可能会选择控制台应用程序。因为我可以轻松更改时间表。我将更多地研究电子邮件内容并发布和进一步的问题。如果您有任何进一步的脚本或有用的信息,请发布。再次感谢
    猜你喜欢
    • 2014-05-10
    • 2010-09-12
    • 2018-05-31
    • 1970-01-01
    • 2011-12-04
    • 2012-02-01
    • 2014-08-30
    • 2017-09-15
    • 1970-01-01
    相关资源
    最近更新 更多