1

私は Visual Basic 2010 プロフェッショナル エディションを使用しており、[受信トレイ] メールを取得するソフトウェアを開発していますが、サーバーからの応答すら得られません。

次の手順を実行しました。

  1. Gmail.com アカウントが IMAP で動作していることを確認しました
  2. 2段階認証方式なので、アプリパスワードを使用しています。
  3. 私はこのコードを使用しています:

        Imports System.Net.Sockets
        Imports System.IO
        Imports System.Text        
        Imports System.Net.Security
    
        Public Class ImapClient1 
    
        Dim ServerNm As String 
        Dim UsrNm As String
        Dim PassStr As String
        Dim _IntPort As Integer
        Dim ImapClient As New Net.Sockets.TcpClient
        Dim NetworkS_stream As NetworkStream
        Dim m_sslStream As SslStream
        Dim Read_Stream As StreamReader
        Dim StatResp As String
    
        Function Login(ByVal Sstream As SslStream, ByVal Server_Command As String)
        ImapClient = New TcpClient(ServerNm, _IntPort)
        NetworkS_stream = ImapClient.GetStream 'Read the stream
        Sstream = New SslStream(NetworkS_stream)
        Dim Read_Stream2 = New StreamReader(Sstream)
        Server_Command = Server_Command ' + vbCrLf
        m_buffer = System.Text.Encoding.ASCII.GetBytes(Server_Command.ToCharArray())
        Sstream.Write(m_buffer, 0, m_buffer.Length)
        Dim Server_Reponse As String
        Server_Reponse = Read_Stream2.ReadLine()
        Return Server_Reponse
    
    End Function
    

次のような[ボタン]でこのログイン機能を使用すると:

        ListBox1.Items.Clear()
        StatResp = Login(m_sslStream, "LOGIN " + UsrNm + " " + PassStr + " ") & vbCrLf
        ListBox1.Items.Add(StatResp)

[ListBox] コントロールに何も表示されません。

4

1 に答える 1

0

すべての IMAP コマンドの前に「タグ」を付ける必要があります。これは、生成する必要があるランダムな英数字の文字列です。通常、ログイン プロセスは次のようになります。

A001 LOGIN user password
A002 SELECT INBOX
A003 ...
...
A010 LOGOUT
于 2012-08-26T02:02:31.027 に答える