To use SMTP, you create an SMTPClient object, and then use the SMTPClient functions to set the email content, the email sender, etc., and then send the email. For complete information about the SMTPClient object and the MimeMessage object, see SMTPClient in Objects and Controls and MimeMessage in Objects and Controls.
Examples
Example 1: This example provides the most basic email-sending function.
Integer li_rc
SMTPClient lnv_SmtpClient
lnv_SmtpClient = CREATE SMTPClient
//Sets the email-sender information
lnv_SmtpClient.Host = "smtp.testmail.com"
lnv_SmtpClient.Port = 25
lnv_SmtpClient.Username = "tester001@testmail.com"
lnv_SmtpClient.password = "Mypassword001"
lnv_SmtpClient.EnableTLS = False
//Sets the email message
lnv_SmtpClient.Message.SetSender("tester001@testmail.com","Tester001")
lnv_SmtpClient.Message.AddRecipient("tester002@testmail.com")
lnv_SmtpClient.Message.Subject = "SMTPClient Test Message"
lnv_SmtpClient.Message.TextBody = "SMTPClient example message body"
//Sends the email
li_rc = lnv_SmtpClient.Send()
IF li_rc = 1 THEN
Messagebox('SMTPClient','Mail sent successfully')
ELSE
Messagebox('SMTPClient' ,'Email sending failed. Return ' + String(li_rc) + '.', StopSign!)
END IF
DESTROY lnv_SmtpClient
Example 2: This example sends an HTML-formatted email with the Cc, attachment, priority, encoding and proxy settings. In addition, the EnableTLS option is set to true, and the logging feature is enabled.
Integer li_rc
String ls_linkedResources, ls_contentID,ls_HTML
SMTPClient lnv_SmtpClient
lnv_SmtpClient = CREATE SMTPClient
//Sets the email-sender information
lnv_SmtpClient.Host = "smtp.gmail.com"
lnv_SmtpClient.Port = 587
lnv_SmtpClient.Username = "tester001@gmail.com"
lnv_SmtpClient.password = "Mypassword001"
lnv_SmtpClient.EnableTLS = True
lnv_SmtpClient.SetProxy("192.168.168.10",8004)
lnv_SmtpClient.LogFile("c:\mail.log")
//Sets the email message
lnv_SmtpClient.Message.SetSender("tester001@gmail.com","Tester001")
lnv_SmtpClient.Message.AddRecipient("tester002@gmail.com")
lnv_SmtpClient.Message.AddCc("CcTester1@gmail.com" )
lnv_SmtpClient.Message.AddAttachment("c:\image\test01.png")
lnv_SmtpClient.Message.Subject = "SMTPClient Test Message"
lnv_SmtpClient.Message.Priority = 2 //High
lnv_SmtpClient.Message.Encoding = "UTF-8"
//Sets the HTML content to be sent
ls_linkedResources = "c:\\image\\example.jpg"
ls_HTML = &
"<html><body>" + "~r~n" + &
"<p>This is the inline " + "~r~n" + &
"<b>HTML</b> message of the e-mail.</p><br />" + "~r~n" + &
"</body></html>"
lnv_SmtpClient.Message.HTMLBody = ls_HTML
//Sends the email
li_rc = lnv_SmtpClient.Send()
IF li_rc = 1 THEN
Messagebox('SMTPClient','Mail sent successfully')
ELSE
Messagebox('SMTPClient' ,'Email sending failed. Return ' + String(li_rc) + '.', StopSign!)
END IF
DESTROY lnv_SmtpClient
Example 3: The example sends an email with OAuth2 authentication. For how to properly acquire the OAuth2 access token, refer to TokenRequest in Objects and Controls.
Integer li_rc
SMTPClient lnv_SmtpClient
lnv_SmtpClient = CREATE SMTPClient
//Sets the email message
lnv_SmtpClient.Message.SetSender("tester001.appeon@gmail.com","Tester001")
lnv_SmtpClient.Message.AddRecipient("tester002.appeon@gmail.com")
lnv_SmtpClient.Message.Subject = "SMTPClient Test Message"
lnv_SmtpClient.Message.TextBody = "SMTPClient example message body"
//Sets the email-sender information
lnv_SmtpClient.Host = "ssmtp.gmail.com"
lnv_SmtpClient.Port = 587
lnv_SmtpClient.EnableTLS = True
lnv_SmtpClient.Username = "tester001.appeon@gmail.com"
//Model Authentication
lnv_SmtpClient.XOAuth2AccessToken = "ya29.a0AVvZVsrZY8ra_fyIw3EyVSYUQIXYbWcz4_mYqlqtxFE-4t_hzLyV_BaZbaxhM3nC10Nr5Qm6hmHPBQvd5BfaH7kXN5KxS-XR0dnV-1EHltUJmcgBSZIHbPEkR6qLf_CEaEozOESSyebgAWv5SGynKfyCzsvR6QaCgYKAeMSARASFQGbdwaIy4ayfJPAa23BKltg4-AJjg0165"
//Sends the email
li_rc = lnv_SmtpClient.Send()
IF li_rc = 1 THEN
Messagebox('SMTPClient','Mail sent successfully')
ELSE
Messagebox('SMTPClient' ,'Email sending failed. Return ' + String(li_rc) + '.', StopSign!)
END IF
DESTROY lnv_SmtpClient
Example 5: The example sends the email asynchronously. Note: You can obtain the result of the async call in the OnSendFinished event.
Long ll_handle
n_smtpclient inv_SmtpClient
inv_SmtpClient = CREATE n_smtpclient
//Sets the email-sender information
inv_SmtpClient.Host = "smtp.gmail.com"
inv_SmtpClient.Port = 587
inv_SmtpClient.Username = "tester001.appeon@gmail.com"
inv_SmtpClient.password = "Mypassword001"
inv_SmtpClient.EnableTLS = True
//Sets the email message
inv_SmtpClient.Message.SetSender("tester001.appeon@gmail.com","Tester001")
inv_SmtpClient.Message.AddRecipient("tester002.appeon@gmail.com")
inv_SmtpClient.Message.Subject = "SMTPClient Test Message"
inv_SmtpClient.Message.TextBody = "SMTPClient example message body"
//Sends the email asynchronously
ll_handle = inv_SmtpClient.SendAsync()
...
DESTROY inv_SmtpClient
//Check the OnSendFinished EVENT for the email-sending result


