Как перехватить почтовые сообщения на POP3-сервере - PullRequest
0 голосов
/ 31 марта 2011

Мне нужно приложение, которое будет перехватывать все входящие почтовые сообщения и изменять их согласно некоторым спецификациям. Я абсолютный новичок в этом, пожалуйста, подробно:)

Ответы [ 2 ]

0 голосов
/ 01 апреля 2011

Все входящие сообщения будут поступать через SMTP.

Итак, вам нужно сделать 1 из 2 вещей:

  1. Если ваш текущий сервер поддерживает его, подключитесь к его событиям SMTP и измените сообщение, прежде чем оно будет передано локальному предполагаемому пользователю.

    или

  2. Вам понадобится прокси-служба SMTP, которая находится перед вашим настоящим SMTP-сервером.

Внутри SMTP-прокси измените сообщение и передайте его на свой настоящий SMTP-сервер.

0 голосов
/ 31 марта 2011

Попробуйте этот пример кода

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
...