【问题标题】:How to intercept mail messages on a POP3 server如何拦截 POP3 服务器上的邮件消息
【发布时间】:2011-03-31 14:48:51
【问题描述】:

我需要一个应用程序来拦截所有传入的邮件消息并根据某些规范对其进行修改。 我是这方面的绝对菜鸟,请详细说明:)

【问题讨论】:

  • 如果您想修改邮箱中的电子邮件(我从您的描述中了解到)- 那是不可能的。您可以编写一个电子邮件客户端(那里有很多示例),但您不能将修改后的电子邮件放回服务器。我的意思是 - 你可以,但它不会来自原始收件人。

标签: email pop3 messages intercept


【解决方案1】:

试试这个示例代码

Dim _tcpClient As New TcpClient
Dim _networkStream As NetworkStream
Dim _Msg As String
With _tcpClient
    .Connect(Me.txtServerIp.Text, Integer.Parse(Me.txtPortNum.Text))
    _networkStream = .GetStream
    Dim sw As New StreamWriter(_networkStream)
    Dim sr As New StreamReader(_networkStream)
    If Not CheckError(sr.ReadLine()) Then
        sw.WriteLine(String.Format("USER {0}", Me.txtUsername.Text))
        sw.Flush()
    End If

    If Not CheckError(sr.ReadLine()) Then
        sw.WriteLine(String.Format("PASS {0}", Me.txtPassword.Text))
        sw.Flush()
    End If

    If Not CheckError(sr.ReadLine()) Then
        sw.WriteLine("STAT ")
        sw.Flush()
    End If
    _Msg = sr.ReadLine
    Dim MsgCount As String = _Msg.Split(New String() {" "},  _
        StringSplitOptions.RemoveEmptyEntries)(1)
    If Integer.Parse(Me.lblMsgCount.Text) < Integer.Parse(MsgCount) Then
        Me.lblMsgCount.Text = MsgCount
    End If
    sw.WriteLine("Quit ")
    sw.Flush()
    sw.Close()
    sr.Close()
    _networkStream.Close()
    _tcpClient.Close()
End With

【讨论】:

    【解决方案2】:

    所有传入的邮件都将通过 SMTP 发送。

    所以,你需要做两件事中的一件:

    1. 如果您当前的服务器支持它,请连接到它的 SMTP 事件,并在将消息传递给本地预期用户之前对其进行修改。

    2. 您将需要一个 SMTP 代理服务,它位于您真正的 SMTP 服务器前面。

    在 SMTP 代理内部,修改消息,并将其传递到您的真实 SMTP 服务器。

    【讨论】:

    • 你能帮我一些相关的链接吗?我正在处理一个 linux 邮件服务器。提前谢谢!
    猜你喜欢
    • 2013-01-05
    • 1970-01-01
    • 2019-11-24
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多