내 VB.NET 응용 프로그램은 Outlook과 나란히 작동하여 다음을 수행하도록 설계되었습니다. 새로운 읽지 않은 이메일에 대한VB.NET - Microsoft.Office.Interop.Outlook - 워크 스테이션이 잠겨있을 때 작동하지 않습니까?
- 확인 각 필드에서 매 10 초 (타이머),
- 캡처 데이터 (에, 날짜, 제목, 본문 등에서), SQL 테이블 내에 저장
- 받은 편지함에서 이메일을 삭제하십시오.
이 응용 프로그램은 워크 스테이션이 화면 보호기 제한 시간에서 잠기는 순간까지 완벽하게 작동합니다. PC가 잠금 해제되면 정상 작동을 재개하고 전자 메일의 백 로그를 거칩니다. 화면 보호기를 사용하지 않도록 설정하겠다고 말할 것입니다.하지만이 PC는 공유 사용자 계정을 사용하는 Microsoft Remote Desktop Connection에서만 액세스 할 수 있으므로 불가능합니다.
이 문제는 Windows XP SP3 및 Outlook 2003에서 실행됩니다. 실제로 해결책을 찾는 것이 문제가 아니며 그 원인을 찾는 것이 더 있습니다. 하지만 분명히 좋은 해결책이 될 것입니다. 여기
는 응용 프로그램에서 코드의 조각, 그것은 기본 Microsoft.Office.Interop.Outlook의 VB.NET 코드입니다 :Public Sub Outlook_GetMail()
Dim sFileName As String = "senderexcludedlist.txt"
Dim ssenderexcludedlist As String = ""
If System.IO.File.Exists(sFileName) = True Then
Dim objReader As New System.IO.StreamReader(sFileName)
Do While objReader.Peek() <> -1
ssenderexcludedlist = objReader.ReadLine()
Loop
objReader.Dispose()
End If
Dim sMessage As String = ""
' Create Outlook application.
Dim oApp As Microsoft.Office.Interop.Outlook.Application = New Microsoft.Office.Interop.Outlook.Application
' Get Mapi NameSpace.
Dim oNS As Microsoft.Office.Interop.Outlook.NameSpace = oApp.GetNamespace("mapi")
oNS.Logon("Mailbox", Missing.Value, False, True)
' Get Messages collection of Inbox.
Dim oInbox As Microsoft.Office.Interop.Outlook.MAPIFolder = oNS.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox)
Dim oItems As Microsoft.Office.Interop.Outlook.Items = oInbox.Items
' Get unread e-mail messages.
oItems = oItems.Restrict("[Unread] = true")
' Loop each unread message.
Dim oMsg As Microsoft.Office.Interop.Outlook.MailItem
Dim i As Integer
For i = 1 To oItems.Count
On Error Resume Next
oMsg = oItems.Item(i)
Dim strBody = oMsg.Body()
strBody = Replace(strBody, vbNewLine, "<BR>")
strBody = Replace(strBody, "'", "´")
Dim strSenderEmailAddress As String = oMsg.SenderEmailAddress
If InStr(ssenderexcludedlist, strSenderEmailAddress) = 0 And Not oMsg.SenderName.Contains("Leeds Tech Support") Then
sMessage = sMessage & oMsg.Subject & vbNewLine
sMessage = sMessage & oMsg.SenderName & vbNewLine
sMessage = sMessage & strSenderEmailAddress & vbNewLine
sMessage = sMessage & oMsg.CC & vbNewLine
sMessage = sMessage & oMsg.ReceivedTime & vbNewLine
sMessage = sMessage & oMsg.Body & vbNewLine
sMessage = sMessage & "---------------------------" & vbNewLine & vbNewLine
MsgLog.Text = sMessage & MsgLog.Text
'INSERT SQL HERE
End If
oMsg.UnRead = False
oMsg.Delete()
Next
' Log off.
oNS.Logoff()
' Clean up.
oApp = Nothing
oNS = Nothing
oItems = Nothing
oMsg = Nothing
End Sub
워크 스테이션이 잠길 때 Exchange 서버와의 연결을 끊는 것과 관련이 있다고 상상해보십시오. 오류/예외 기록 중입니까? 그렇다면 워크 스테이션이 잠길 때 어떻게됩니까? 또한 Windows 이벤트 로그를 확인하십시오. –