我必须每隔x分钟从邮箱中读取传入的电子邮件。目前我正在通过hmailserver发送电子邮件,所以假设这将是一个很好的起点。
如果我创建一个新邮箱sendtome@domain.com(该域名已经准备好使用rdns等设置),有一种简单的方法可以从.net 4中读取电子邮件及其附件(我从未阅读过代码中的电子邮件之前没有想法这里)。
我正在考虑运行Windows服务,每5分钟检查一次邮箱,并可以阅读和处理电子邮件及其csv附件。
任何帮助和建议都会很棒。
答案 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项目中找到。