【问题标题】:Receive emails using pop3使用 pop3 接收电子邮件
【发布时间】:2014-06-21 18:29:01
【问题描述】:

我正在尝试使用 pop3 接收电子邮件。我不能使用“OpenPop.dll”,因为我只能使用 .net 4.0。

我可以找到读者,但我不知道如何打印读者所做的事情。

我想要的是一种计算这四个项目的方法:每封电子邮件的 From、Subject、Received 和 Size。

电子邮件本身我也想计算。

    Dim client As TcpClient
    Dim clientStream As Stream
    Dim writer As System.IO.StreamWriter
    Dim reader As System.IO.StreamReader
    Dim host, email, pass As String
    Dim port As Integer
    Dim ssl As Boolean
    host = "pop3.email.com"
    email = "this@email.com"
    pass = "pass1"
    port = 995 
    If client Is Nothing Then
        client = New TcpClient()
    End If
    If Not client.Connected Then
        client.Connect(host, port)
    End If
    If ssl = True Then
        Dim secureStream As New System.Net.Security.SslStream(client.GetStream())
        secureStream.AuthenticateAsClient(host)
        clientStream = secureStream
        secureStream = Nothing
    Else
        clientStream = client.GetStream()
    End If
    writer = New StreamWriter(clientStream)
    reader = New StreamReader(clientStream)

【问题讨论】:

  • MailKit 是 .NET 4.0,所以你可以使用它。

标签: asp.net vb.net pop3


【解决方案1】:

尽管它是用 C# 编写的,但有一个开源 POP3 实现可能会为您提供一些关于如何实现类似功能的指示:

http://www.codeproject.com/Articles/21377/NET-POP-MIME-Client

如果你想自己实现它,我建议你复习一下你的 POP3 知识:

http://www.ietf.org/rfc/rfc1939.txt

【讨论】:

  • 我无法在我的 .net 4.0 服务器上运行 pop3Client 或“OpenPop.dll”。我需要这样做,这样我才能理解 StreamReader 和 StreamWriter!
【解决方案2】:

不仅要编写一个 POP3 客户端(实际上并不难)而且还要编写一个 MIME 解析器(这需要大量的工作),这都是一项相当大的工作。

我不确定您所说的 “我也想计算的电子邮件本身”是什么意思。,但我想这意味着您想解析整个事情?还是只关心解析标头以获取 From、Subject 和 Received 标头?

有关实现 MIME 解析器所需查看的 MIME 规范列表(和链接),请查看this page

您还需要查看POP3 specification

首先,POP3 有一个命令来获取每条消息的大小(阅读“STAT”命令)。没有命令可以获取每个单独的标头值,但是如果您想要的话,有一个命令可以下载标头(阅读“TOP”命令)。不过,您需要自己解析它们。

标头的基本解析并不太难,但是当您需要处理不是简单 ASCII 的标头值时(即,如果它们是未编码的 8 位文本,根据 @987654323 的规则进行编码),它开始变得复杂@,或 2) 的某种组合。

您可能并不关心完美地解码标头值,而只是接受这样一个事实,即即使您完美地实现 MIME 规范,您也无法解码很多标头...但是如果您有兴趣了解一些在更常见/最严重的违反标准的行为中,我写了一篇关于它的博客文章,标题为Why decoding rfc2047-encoded headers is hard

如果您还想了解解析电子邮件,我认为观看 Richard Signes 的演示文稿非常有价值。你可以在这里找到:https://www.youtube.com/watch?v=JENdgiAPD6c

希望这足以让您入门。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 2010-12-15
    • 2017-05-20
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    相关资源
    最近更新 更多