VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2006/12/18(Mon) 14:06
投稿者naruharu
Eメール
URL
タイトルMAPISession、MAPIMessagesについて

2回目の投稿になります。

MAPISessionとMAPIMessagesを使って、メール内容を表示する簡単なプログラムを組み
ました(下記)。

Timerを使って30秒ごとに新着メールを確認し、メールの本文をテキストボックスに表
示するものです。実行後しばらくは問題ないのですが、2日ぐらい(メール確認回数
6000回くらい?)経過すると、使用しているPCのデスクトップ表示がおかしくなり
ます。

具体的には、新着メール確認ごとに、最下部に表示されているWindowsのタスクバーが
最上部にも出現したり、別に走っているソフトが本来の画面位置と別の場所にも2重に
表示されたり、次には消えたり・・・とにかくグラフィックがおかしくなってしまいます。

これを放っておくと最終的にはMAPIMessages1.Fetchの”予期しないエラー”で止まって
しまいますが、上記症状との関連は明らかではありません。

MAPISessionとMAPIMessagesとしては標準的な使い方だと思いますが、なぜこのようなこ
とが起こるのかわかりません。OSはWindowsXP(Pro, HomeEdition)、メールアカウントの
設定はOutlookExpressで行っています。3台の異なるPCでテストしましたが、いずれも
同じ症状が発生しました。

よろしくお願いいたします。



Private Sub Form_Load()
Timer1.Interval = 30 * 1000 (メール確認間隔=30秒)
End Sub

Private Sub Timer1_Timer()

    Dim i As Integer
    Dim n As Integer
    Dim adr As String       '受信メールのアドレス
    Dim msb As String       '受信メールの件名
    Dim msg As String       '受信メールの本文
    Dim nmsg As Integer


    'メール受信処理
    MAPISession1.UserName = "*******"
    MAPISession1.Password = "*******"
    MAPISession1.SignOn
    MAPIMessages1.SessionID = MAPISession1.SessionID

    MAPIMessages1.FetchMsgType = ""
    MAPIMessages1.FetchSorted = True
    MAPIMessages1.FetchUnreadOnly = True    '未読メールのみ受信
    MAPIMessages1.Fetch
    
    n = 0
    
        For i = 0 To MAPIMessages1.MsgCount - 1
  
            MAPIMessages1.MsgIndex = i
            adr = MAPIMessages1.MsgOrigAddress
            msb = MAPIMessages1.MsgSubject
            msg = MAPIMessages1.MsgNoteText

        Text1.Text = adr & vbCrLf & msb
                    
                
        Next i  '次メールへ
        
    If MAPIMessages1.MsgCount > 0 Then
    MAPIMessages1.Delete        '処理したメールを削除(ゴミ箱へ移動)
    End If
    
    MAPISession1.SignOff
        
End Sub


- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -