(VBScript) IMAP STARTTLS (Explicit TLS/SSL)

The StartTls property is set to force the Connect method to automatically convert an connection to TLS/SSL via the STARTTLS IMAP command.

This is also known as "explicit TLS/SSL" as opposed to "implicit TLS/SSL". With implicit TLS/SSL, the IMAP client connects on the well-known IMAP TLS/SSL port 993 and the secure channel is immediately established. With explicit TLS/SSL, the IMAP client connects on the typical non-secure port (143 usually) and the converts the connection via the STARTTLS command.

Chilkat ActiveX Downloads

Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set outFile = fso.CreateTextFile("output.txt", True)
set imap = CreateObject("Chilkat_9_5_0.Imap")
' Anything unlocks the component and begins a fully-functional 30-day trial.
success = imap.UnlockComponent("Anything for 30-day trial")
If (success <> 1) Then
outFile.WriteLine(imap.LastErrorText)
WScript.Quit
End If' Indicate that STARTTLS should be used to convert' to a secure TLS/SSL connection:
imap.StartTls = 1
imap.Port = 143' Connect to an IMAP server and convert the connection' to TLS/SSL via STARTTLS.
success = imap.Connect("imap.someMailServer.com")
If (success <> 1) Then
outFile.WriteLine(imap.LastErrorText)
WScript.Quit
End If' The remainder of this example is the same as for' non-TLS/SSL...' Login
success = imap.Login("myLogin","myPassword")
If (success <> 1) Then
outFile.WriteLine(imap.LastErrorText)
WScript.Quit
End If' Select an IMAP mailbox
success = imap.SelectMailbox("Inbox")
If (success <> 1) Then
outFile.WriteLine(imap.LastErrorText)
WScript.Quit
End If' We can choose to fetch UIDs or sequence numbers.
fetchUids = 1' Get the message IDs of all the emails in the mailbox' messageSet is a Chilkat_9_5_0.MessageSet
Set messageSet = imap.Search("ALL",fetchUids)
If (messageSet Is Nothing ) Then
outFile.WriteLine(imap.LastErrorText)
WScript.Quit
End If' Fetch the emails into a bundle object:' bundle is a Chilkat_9_5_0.EmailBundle
Set bundle = imap.FetchBundle(messageSet)
If (bundle Is Nothing ) Then
outFile.WriteLine(imap.LastErrorText)
WScript.Quit
End If' Loop over the bundle and display the FROM and SUBJECT of each.For i = 0To bundle.MessageCount - 1' email is a Chilkat_9_5_0.Email
Set email = bundle.GetEmail(i)
outFile.WriteLine(email.From)
outFile.WriteLine(email.Subject)
outFile.WriteLine("--")
Next' Disconnect from the IMAP server.
success = imap.Disconnect()
outFile.Close