2011-03-31 76 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