The project of U-WA-
http://uwa.potetihouse.com/
戻る
TKMP.DLL   プログラミングTips

通信ログを表示する

 POPサーバーとの通信内容を表示するにはTKMP.Net.PopClientクラスのMessageSendイベントとMessageReceiveイベントを使用します。 送信または受信を行う毎にイベントが発生するので、その都度処理を行うことにより通信ログを作成することが可能です。
 次のサンプルでは、POPサーバーへの接続から切断までの通信内容をデバッグウインドウに表示しています。 実際にはメールの受信時にメール内容の通信が発生しますが、MessageSendイベントにはメール内容は通知されません。 パスワードの送信時にログに平分が出てしまうので、通信ログをファイルへ保存するような場合は注意してください。
C#.NET
//サーバーから全メールを読み出すときの通信メッセージを表示します
private void ReadMail()
{

    //接続情報
    string server = "mail.example.jp";
    int port = 110;
    string userid = "userid";
    string pass = "pass";

    //サーバへの接続用クラスを作成する
    System.Net.IPAddress address = System.Net.Dns.GetHostByName(server).AddressList[0];
    TKMP.Net.IPopLogon logon = new TKMP.Net.BasicPopLogon(userid , pass);
    TKMP.Net.PopClient pop = new TKMP.Net.PopClient(logon , address , port);

    //送信イベントを登録
    pop.MessageSend +=new TKMP.Net.MessageSendHandler(pop_MessageSend);
    //受信イベントを登録
    pop.MessageReceive+=new TKMP.Net.MessageReceiveHandler(pop_MessageReceive);

    //接続開始
    if(!pop.Connect())
    {
        return ;
    }

    //メールの受信を行います
    foreach(TKMP.Net.MailData mail in pop.MailDatas)
    {
        mail.ReadBody();
    }

    //切断
    pop.Close();

}

//サーバーからメッセージを受信したときのイベント
private void pop_MessageSend(object sender, TKMP.Net.MessageArgs e)
{
    System.Diagnostics.Debug.WriteLine(">" + e.Message );
}

//サーバーへメッセージを送信したときのイベント
private void pop_MessageReceive(object sender, TKMP.Net.MessageArgs e)
{
    System.Diagnostics.Debug.WriteLine(e.Message );
}
VB.NET
'サーバーから全メールを読み出すときの通信メッセージを表示します
Private Sub ReadMail()

    '接続情報
    Dim server As String = "mail.example.jp"
    Dim port As Integer = 110
    Dim userid As String = "userid"
    Dim pass As String = "pass"

    'サーバへの接続用クラスを作成する
    Dim address As System.Net.IPAddress = System.Net.Dns.GetHostByName(server).AddressList(0)
    Dim logon As New TKMP.Net.BasicPopLogon(userid, pass)
    Dim pop As New TKMP.Net.PopClient(logon, address, port)

    '送信イベントを登録
    AddHandler pop.MessageSend, AddressOf pop_MessageSend
    '受信イベントを登録
    AddHandler pop.MessageReceive, AddressOf pop_MessageReceive

    '接続開始
    If Not pop.Connect() Then
        Return
    End If

    'メールの受信を行います
    Dim mail As TKMP.Net.MailData
    For Each mail In pop.MailDatas
        mail.ReadBody()
    Next mail

    '切断
    pop.Close()
End Sub


'サーバーからメッセージを受信したときのイベント
Private Sub pop_MessageSend(ByVal sender As Object, ByVal e As TKMP.Net.MessageArgs)
    System.Diagnostics.Debug.WriteLine((">" + e.Message))
End Sub


'サーバーへメッセージを送信したときのイベント
Private Sub pop_MessageReceive(ByVal sender As Object, ByVal e As TKMP.Net.MessageArgs)
    System.Diagnostics.Debug.WriteLine(e.Message)
End Sub
VB.NETのコードはC#.NETを元に「C#.NET to VB.NET Translator」によって作成したものです

トップページへ移動
The project of U-WA-
http://uwa.potetihouse.com/