Sample code for 30+ languages & platforms
PowerBuilder

Send Email and Save Copy to "Sent" Mailbox

Sends an email and places a copy in the "Sent" mailbox on an IMAP server.

This example demonstrates how to send an email and then upload a copy to an IMAP mail server's "Sent" mailbox. Note: You may need to create a "Sent" mailbox on your IMAP server prior to running this example. You may already have a mailbox named something different -- perhaps "Sent Items".

Important: If your mail server is POP3, the "Sent Items" mailbox is actually a file on your local computer managed by your email client, such as Outlook, Mozilla Thunderbird. This example does not save emails to Outlook or Mozilla Thunderbird "Sent Items" local files.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Mailman
oleobject loo_Email
oleobject loo_Imap

li_Success = 0

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

li_Success = 0

// The mailman object is used for sending (SMTP) and receiving (POP3) email.
loo_Mailman = create oleobject
li_rc = loo_Mailman.ConnectToNewObject("Chilkat.MailMan")
if li_rc < 0 then
    destroy loo_Mailman
    MessageBox("Error","Connecting to COM object failed")
    return
end if

// Set the SMTP server.
loo_Mailman.SmtpHost = "mail.mydomain.com"
loo_Mailman.SmtpUsername = "myLogin"
loo_Mailman.SmtpPassword = "myPassword"

// Create a new email object
loo_Email = create oleobject
li_rc = loo_Email.ConnectToNewObject("Chilkat.Email")

loo_Email.Subject = "This is a test"
loo_Email.Body = "This is a test"
loo_Email.From = "Myself <myself@mydomain.com>"
li_Success = loo_Email.AddTo("Somebody","somebody@somedomain.com")

li_Success = loo_Mailman.SendEmail(loo_Email)
if li_Success <> 1 then
    Write-Debug loo_Mailman.LastErrorText
    destroy loo_Mailman
    destroy loo_Email
    return
end if

Write-Debug "Mail Sent!"

// Now use Chilkat IMAP to save the email to Inbox.Sent

loo_Imap = create oleobject
li_rc = loo_Imap.ConnectToNewObject("Chilkat.Imap")

// Connect to an IMAP server.
// Use TLS
loo_Imap.Ssl = 1
loo_Imap.Port = 993
li_Success = loo_Imap.Connect("mail.mydomain.com")
if li_Success <> 1 then
    Write-Debug loo_Imap.LastErrorText
    destroy loo_Mailman
    destroy loo_Email
    destroy loo_Imap
    return
end if

// Login
li_Success = loo_Imap.Login("myLogin","myPassword")
if li_Success <> 1 then
    Write-Debug loo_Imap.LastErrorText
    destroy loo_Mailman
    destroy loo_Email
    destroy loo_Imap
    return
end if

// The AppendMail method uploads an email to an IMAP server
// and saves it in the mailbox specified:
li_Success = loo_Imap.AppendMail("Inbox.Sent",loo_Email)
if li_Success <> 1 then
    Write-Debug loo_Imap.LastErrorText
    destroy loo_Mailman
    destroy loo_Email
    destroy loo_Imap
    return
end if

Write-Debug "Mail saved to Inbox.Sent"


destroy loo_Mailman
destroy loo_Email
destroy loo_Imap