2011-03-31 2 views
0

들어오는 모든 메일 메시지를 가로 채고 일부 사양에 따라 수정하는 응용 프로그램이 필요합니다. 내가 이걸 절대 신인 오전, 세부 :POP3 서버에서 메일 메시지를 가로 채는 방법

+0

http://serverfault.com에 속한 –

+0

사서함에서 전자 메일을 수정하려면 (사용자 설명에서 알 수 있듯이) 불가능합니다. 이메일 클라이언트를 작성할 수는 있지만 많은 수정 사항을 서버에 다시 보낼 수는 없습니다. 제 말은 - 할 수 있겠지만 원래 수취인이 아닙니다. –

답변

0

모든 수신 메시지는 SMTP를 통해 오는 것이 샘플 코드를

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

을 시도하십시오.

그래서, 당신은 1 2 일을해야합니다

  1. 현재 서버가 지원하는 경우, 그것의 SMTP 이벤트에 걸고이 지역 의도 된 사용자에게 전달되기 전에 메시지를 수정합니다.

    또는

  2. 당신은 당신의 진짜 SMTP 서버의 앞에 앉아 SMTP 프록시 서비스가 필요합니다.

SMTP 프록시 내부에서 메시지를 수정 한 다음 실제 SMTP 서버로 전달하십시오.

+0

관련 링크를 좀 도와 주시겠습니까? 나는 리눅스 메일 서버를 다루고있다. 미리 감사드립니다. – wolfsoul13

관련 문제