Visual FoxPro
Visual FoxPro
Upload (Append) Email to an IMAP Mailbox and get the UID of the Appended Email
Upload / append an email to an IMAP mailbox and get the UID of the appended email.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loImap
LOCAL lcCap
LOCAL loEmail
LOCAL lnUidNext
lnSuccess = 0
* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loImap = CreateObject('Chilkat.Imap')
* Connect to an IMAP server.
* Use TLS
loImap.Ssl = 1
loImap.Port = 993
lnSuccess = loImap.Connect("imap.example.com")
IF (lnSuccess <> 1) THEN
? loImap.LastErrorText
RELEASE loImap
CANCEL
ENDIF
* Login
lnSuccess = loImap.Login("myLogin","myPassword")
IF (lnSuccess <> 1) THEN
? loImap.LastErrorText
RELEASE loImap
CANCEL
ENDIF
* Check the capabilities of the IMAP server.
lcCap = loImap.Capability()
? "IMAP capabilities: " + lcCap
* If the capabilities string contains the substring "UIDPLUS", then
* the UID of the appended email will be available in the AppendUid property (see below).
* For example, the GMail IMAP server has these capabilities (at this current time)
* * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN
* X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT
* APPENDLIMIT=35882577 LIST-EXTENDED LIST-STATUS
loEmail = CreateObject('Chilkat.Email')
* Load the email from a .eml file.
lnSuccess = loEmail.LoadEml("myEmail.eml")
IF (lnSuccess <> 1) THEN
? loEmail.LastErrorText
RELEASE loImap
RELEASE loEmail
CANCEL
ENDIF
lnSuccess = loImap.AppendMail("Inbox",loEmail)
IF (lnSuccess <> 1) THEN
? loImap.LastErrorText
RELEASE loImap
RELEASE loEmail
CANCEL
ENDIF
* If the IMAP server supports the UIDPLUS extension, then the
* imap.AppendUid will contain the UID of the appended email.
* Otherwise AppendUid will be 0.
? "UID of appended email: " + STR(loImap.AppendUid)
* If the IMAP server does NOT have UIDPLUS, then a program can
* first select the mailbox, get the value of the UidNext property,
* and then append. The appended email SHOULD have a UID equal to
* the UidNext that was obtained just prior to appending (assuming no other
* program is simultaneously appending an email to the same mailbox).
* Note: It is not required to select a mailbox to append. The select is only
* done for the purpose of obtaining the UIDNEXT value.
lnSuccess = loImap.SelectMailbox("Inbox")
IF (lnSuccess <> 1) THEN
? loImap.LastErrorText
RELEASE loImap
RELEASE loEmail
CANCEL
ENDIF
lnUidNext = loImap.UidNext
lnSuccess = loImap.AppendMail("Inbox",loEmail)
IF (lnSuccess <> 1) THEN
? loImap.LastErrorText
RELEASE loImap
RELEASE loEmail
CANCEL
ENDIF
? "The UID of the appended email SHOULD be " + STR(lnUidNext)
? "Email uploaded to Inbox!"
* Disconnect from the IMAP server.
lnSuccess = loImap.Disconnect()
RELEASE loImap
RELEASE loEmail