Visual FoxPro
Visual FoxPro
End a POP3 Session Without Committing Deletions
See more POP3 Examples
Demonstrates the Chilkat MailMan.Pop3EndSessionNoQuit method, which closes the POP3 connection without sending the QUIT command. Pending deletion marks are not committed — messages marked with DELE during the session remain in the mailbox. This example marks a message for deletion and then abandons the session so the deletion does not take effect.
Background: POP3's deferred-deletion model effectively gives you a transaction: marks made with
DELE are only applied when the session ends with QUIT. Ending without QUIT is therefore a rollback — useful if an error occurs mid-processing and you'd rather leave the mailbox untouched than risk deleting messages you failed to handle. Use Pop3EndSession when you do want the deletions committed.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loMailman
lnSuccess = 0
* Demonstrates the MailMan.Pop3EndSessionNoQuit method, which closes the POP3 connection
* WITHOUT sending the QUIT command. Pending deletion marks are not committed -- messages
* marked with DELE during the session remain in the mailbox.
loMailman = CreateObject('Chilkat.MailMan')
* Configure the POP3 server connection.
loMailman.MailHost = "pop.example.com"
loMailman.MailPort = 995
loMailman.PopSsl = 1
loMailman.PopUsername = "user@example.com"
loMailman.PopPassword = "myPassword"
lnSuccess = loMailman.Pop3BeginSession()
IF (lnSuccess = 0) THEN
? loMailman.LastErrorText
RELEASE loMailman
CANCEL
ENDIF
* Mark a message for deletion...
lnSuccess = loMailman.DeleteByMsgnum(1)
IF (lnSuccess = 0) THEN
? loMailman.LastErrorText
RELEASE loMailman
CANCEL
ENDIF
* ...but end the session without QUIT, so the deletion is NOT committed and the message
* remains in the mailbox.
lnSuccess = loMailman.Pop3EndSessionNoQuit()
IF (lnSuccess = 0) THEN
? loMailman.LastErrorText
RELEASE loMailman
CANCEL
ENDIF
? "Session closed without committing the pending deletion."
RELEASE loMailman