2011-03-31 48 views
0

我需要一个拦截所有传入邮件并根据某些规范修改它们的应用程序。 我是一个绝对的新人在此,请详细:)如何拦截POP3服务器上的邮件消息

+0

属于http://serverfault.com – 2011-03-31 14:59:45

+0

如果您想修改邮箱中的电子邮件(正如我从您的描述中了解的那样) - 那是不可能的。你可以编写一个电子邮件客户端(大量的例子),但你不能把修改后的电子邮件发回服务器。我的意思是 - 你可以,但它不会来自原来的收件人。 – 2011-03-31 16:16:10

回答

0

试试这个示例代码

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 
0

所有传入的消息将在未来通过SMTP。

所以,你需要做的1 2件事:

  1. 如果您当前的服务器支持它,连接它的SMTP事件,它是到本地预期的用户才能通过修改消息。

  2. 您将需要一个SMTP代理服务,在你真正的SMTP服务器的前面坐。

在SMTP代理中,修改邮件并将其传递到您的真实SMTP服务器。

+0

你能帮我一些相关的链接吗?我正在处理一个Linux邮件服务器。先谢谢你! – wolfsoul13 2011-04-04 08:04:45