|  | 
 | |
| 株式会社ウィル | ||
|  | ||
| HOME | 新着情報 | 製品一覧 | 受託開発 | Download | 購入方法 | トライアル | サポート | 会社案内 | 
|  | 
| メールチェックサンプル MAILCHK Ver1.1 | ||||
|  | ||||
| 
 | 
MAILCHKはPOPプロトコルを利用して、メールが到着しているかどうかを調べるプログラムです。 
このプログラムを応用すると、独自のメールプログラムを作成することができるようになります(なるかもしれません)。
| ▲TOPへ | 
変数Actionに何をしているのかを記憶しておく。
- "INIT" これからConnectメソッドを発行した。
- "USER" Sendメソッドを用いてUSERコマンドを発行した。
- "PASS" Sendメソッドを用いてPASSコマンドを発行した。
- "QUIT" Sendメソッドを用いてQUITコマンドを発行した。
- "CLOSE" Closeメソッドを発行した。
発行したメソッド・コマンドと、それに対するサーバーからのメッセージ(Reply)に応じて処理を切り替える。
| ▲TOPへ | 
 
'(C)COPYRIGHT 1997 WILL
Option Explicit
Dim Action$
Dim Reply$
'記録を残す
Sub log(state$)
    List1.AddItem Action & ":" & state
    List1.ListIndex = List1.NewIndex    '最後に追加した行を選択
End Sub
'チェック開始ボタン
Private Sub Command1_Click()
    '2度押しされないようにする
    Command1.Enabled = False
    Command2.Enabled = True
    'ログをクリア
    List1.Clear
    Action = "INIT"
    Call log("CONNECT")
    Reply = ""
    Label1 = "チェック中"
    'POPサーバーはポート110
  Tcpip1.Connect Text1(0), "110", "0"
End Sub
'中断ボタン
Private Sub Command2_Click()
    Label1 = "中断しました"
    Tcpip1.Close
End Sub
'フォームロード
Private Sub Form_Load()
    Label5 = Tcpip1.copyright
End Sub
'通信が切断された。ここに終了処理をまとめておく
Private Sub Tcpip1_Closed()
    Call log("CLOSED")
    Command1.Enabled = True
    Command2.Enabled = False
End Sub
Private Sub Tcpip1_Connected()
    Call log("CONNECTED")
End Sub
'データを受信した
Private Sub Tcpip1_Received(data As String)
    Dim d$     
    'ANSI/DBCSコードからUnicode変換する
    Reply = Reply & StrConv(data, vbUnicode)
    '改行が来るまで待つ
    If (Right$(Reply, 2) <> vbCrLf) Then
        Exit Sub
    End If
    '行末の改行コードを取る
    Reply = Left$(Reply, Len(Reply) - 2)
    Call log("RECV:" & Reply)
    'エラーならそれを表示して終わり
    If (Left$(Reply, 4) = "-ERR") Then
        Label1 = Mid(Reply, 6)
        Tcpip1.Close
        Exit Sub
    End If
    '何をしたかに応じて処理を変える
    Select Case Action
    Case "INIT" '接続した。ユーザー名を入れる
        Action = "USER"
        Reply = ""
        d = StrConv(Action & " " & Text1(1) & vbCrLf, 128)
        Tcpip1.Send d
    Case "USER" 'パスワードを入れる
        Action = "PASS"
        Reply = ""
        d = StrConv(Action & " " & Text1(2) & vbCrLf, 128)
        Tcpip1.Send d
    Case "PASS" '目的は果たしたのでQUITを送信して終了をする
        Label1 = Mid$(Reply, 4)
        Action = "QUIT"
        Reply = ""
        d = StrConv(Action & vbCrLf, 128)
        Tcpip1.Send d
    Case "QUIT" '最終メッセージを受け取った
        Action = "CLOSE"
        Tcpip1.Close
    End Select
End Sub
Private Sub Text1_GotFocus(Index As Integer)
    Text1(Index).SelStart = 0
    Text1(Index).SelLength = Len(Text1(Index))
End Sub
 
|  | 
| (C) Copyright 2003 WILL Corporation. All rights reserved. |