Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(AutoIt) Examine Junk/NonJunk Flags on Outlook.com and GMailExamines the Junk and NonJunk FLAGS for IMAP on Outlook.com and GMail.com.
$oImap = ObjCreate("Chilkat.Imap") ; This example assumes Chilkat Imap to have been previously unlocked. ; See Unlock Imap for sample code. ; Connect to the outlook.com IMAP server. ; We'll do the same for GMail below.. ; Use TLS $oImap.Ssl = True $oImap.Port = 993 Local $bSuccess = $oImap.Connect("imap-mail.outlook.com") If ($bSuccess <> True) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; Login $bSuccess = $oImap.Login("myAccount@outlook.com","OUTLOOK_PASSWORD") If ($bSuccess <> True) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; Begin keeping a log of the session here. $oImap.KeepSessionLog = True ; Select an IMAP mailbox $bSuccess = $oImap.SelectMailbox("Inbox") If ($bSuccess <> True) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; The LastResponse property contains the full response of the last command. ; The response to the SELECT mailbox command shows the FLAGS that can be set ; for emails in the mailbox. Local $selectResponse = $oImap.LastResponse ConsoleWrite($selectResponse & @CRLF) ; The response to "SELECT Inbox" looks like this: ; There are no FLAGS for Junk/NonJunk.. ; * 4 EXISTS ; * 0 RECENT ; * FLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent) ; * OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)] Permanent flags ; * OK [UIDVALIDITY 14] UIDVALIDITY value ; * OK [UIDNEXT 1719] The next unique identifier value ; aaac OK [READ-WRITE] SELECT completed. ; Fetch the flags for each message in the mailbox. ; Prior to running this example, (using Mozilla Thunderbird) I marked one of the emails ; in my outlook.com Inbox as Junk. Local $iSequenceNum = 1 While $iSequenceNum <= $oImap.NumMessages Local $sFlags = $oImap.FetchFlags($iSequenceNum,False) ConsoleWrite($iSequenceNum & ": " & $sFlags & @CRLF) $iSequenceNum = $iSequenceNum + 1 Wend ; The output of the above loop is this: ; 1: \Seen ; 2: \Seen ; 3: \Seen ; 4: \Seen ; As you can see, nothing is marked as Junk/Spam. This concurs with the list of FLAGS ; documented in the response to the SELECT command. Apparently, there is no flag for junk/nonjunk ; for outlook.com. Mozilla Thunderbird must be storing additional information about particular ; emails locally. (In other words, perhaps the Junk/NonJunk flag is information stored locally ; by Thunderbird, and is not a flag set on the server.) ConsoleWrite("---- Session Log ----" & @CRLF) ConsoleWrite($oImap.SessionLog & @CRLF) ; The session log looks like this: ; ----IMAP REQUEST---- ; aaac SELECT "Inbox" ; ----IMAP RESPONSE---- ; * 4 EXISTS ; * 0 RECENT ; * FLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent) ; * OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)] Permanent flags ; * OK [UIDVALIDITY 14] UIDVALIDITY value ; * OK [UIDNEXT 1719] The next unique identifier value ; aaac OK [READ-WRITE] SELECT completed. ; ----IMAP REQUEST---- ; aaad FETCH 1 (FLAGS) ; ----IMAP RESPONSE---- ; * 1 FETCH (FLAGS (\Seen)) ; aaad OK FETCH completed. ; ----IMAP REQUEST---- ; aaae FETCH 2 (FLAGS) ; ----IMAP RESPONSE---- ; * 2 FETCH (FLAGS (\Seen)) ; aaae OK FETCH completed. ; ----IMAP REQUEST---- ; aaaf FETCH 3 (FLAGS) ; ----IMAP RESPONSE---- ; * 3 FETCH (FLAGS (\Seen)) ; aaaf OK FETCH completed. ; ----IMAP REQUEST---- ; aaag FETCH 4 (FLAGS) ; ----IMAP RESPONSE---- ; * 4 FETCH (FLAGS (\Seen)) ; aaag OK FETCH completed. $oImap.Disconnect() ; -------------------------------------------------------------------------------- ; Now let's check GMail.. ; Again, I've marked one email as Junk. $oImap.KeepSessionLog = False $oImap.Ssl = True $oImap.Port = 993 $bSuccess = $oImap.Connect("imap.gmail.com") If ($bSuccess <> True) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf ; Login $bSuccess = $oImap.Login("myAccount@gmail.com","GMAIL-IMAP-PASSWORD") If ($bSuccess <> True) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf $oImap.KeepSessionLog = True $bSuccess = $oImap.SelectMailbox("Inbox") If ($bSuccess <> True) Then ConsoleWrite($oImap.LastErrorText & @CRLF) Exit EndIf $selectResponse = $oImap.LastResponse ConsoleWrite($selectResponse & @CRLF) ; The response to GMail "SELECT Inbox" looks like this: ; * FLAGS (\Answered \Flagged \Draft \Deleted \Seen $Forwarded $NotPhishing $Phishing $label1 $label2 $label3 $label4 $label5 Junk NonJunk) ; * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen $Forwarded $NotPhishing $Phishing $label1 $label2 $label3 $label4 $label5 Junk NonJunk \*)] Flags permitted. ; * OK [UIDVALIDITY 3] UIDs valid. ; * 46 EXISTS ; * 0 RECENT ; * OK [UIDNEXT 4147] Predicted next UID. ; * OK [HIGHESTMODSEQ 403404] ; aaai OK [READ-WRITE] Inbox selected. (Success) $iSequenceNum = $oImap.NumMessages Local $iMinSeqNum = 1 If ($iSequenceNum > 10) Then $iMinSeqNum = $iSequenceNum - 10 EndIf While $iSequenceNum >= $iMinSeqNum Local $sFlags = $oImap.FetchFlags($iSequenceNum,False) ConsoleWrite($iSequenceNum & ": " & $sFlags & @CRLF) $iSequenceNum = $iSequenceNum - 1 Wend ; The output (for GMail) of the above loop is this: ; 46: Junk \Seen ; 45: NonJunk \Answered \Seen ; 44: NonJunk \Seen ; 43: \Answered \Seen ; 42: \Answered \Seen ; 41: NonJunk \Seen ; 40: NonJunk \Answered \Seen ; 39: NonJunk \Seen ; 38: NonJunk \Seen ; 37: NonJunk \Seen ; 36: NonJunk \Seen ; As you can see, the email I marked as "Junk" using Mozilla Thunderbird has the Junk flag set. ; This concurs with GMail's list of FLAGS. Apparently, since the IMAP server has a "Junk" flag, ; Thunderbird set it when I marked the email as Junk. $oImap.Disconnect() |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.