DataFlex
DataFlex
Send HTML Email with Image to iPhone
Demonstrates how to compose an HTML email with an embedded image that will display correctly on an iPhone. This example produces an email that looks like this on the iPhone:
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoMailman
Variant vEmail
Handle hoEmail
String sContentIdStarfish
Handle hoSbHtml
Integer iNumReplacements
String sTemp1
Boolean bTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// The mailman object is used for sending and receiving email.
Get Create (RefClass(cComChilkatMailMan)) To hoMailman
If (Not(IsComObjectCreated(hoMailman))) Begin
Send CreateComObject of hoMailman
End
// Use your SMTP server hostname. This example uses office365, but it could be any SMTP server..
Set ComSmtpHost Of hoMailman To "outlook.office365.com"
Set ComSmtpPort Of hoMailman To 587
Set ComStartTLS Of hoMailman To True
// Set the SMTP login/password
Set ComSmtpUsername Of hoMailman To "OFFICE365-SMTP-LOGIN"
Set ComSmtpPassword Of hoMailman To "OFFICE365-SMTP-PASSWORD"
// Create a new email object
Get Create (RefClass(cComChilkatEmail)) To hoEmail
If (Not(IsComObjectCreated(hoEmail))) Begin
Send CreateComObject of hoEmail
End
Set ComSubject Of hoEmail To "Testing for Chilkat SMTP API..."
Set ComBody Of hoEmail To "Testing for Chilkat SMTP API..."
Set ComFrom Of hoEmail To "Chilkat Support <my-office365-user@mydomain.com>"
Get ComAddTo Of hoEmail "Chilkat Support" "support@chilkatsoft.com" To iSuccess
// For whatever reason, the iPhone's email program requires
// images in HTML to be referenced by Content-ID. Therefore,
// we must add the image like this:
Get ComAddRelatedFile Of hoEmail "qa_data/jpg/starfish.jpg" To sContentIdStarfish
Get ComLastMethodSuccess Of hoEmail To bTemp1
If (bTemp1 <> True) Begin
Get ComLastErrorText Of hoEmail To sTemp1
Showln sTemp1
Procedure_Return
End
// The src attribute for the image tag is set to the contentIdStarfish:
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbHtml
If (Not(IsComObjectCreated(hoSbHtml))) Begin
Send CreateComObject of hoSbHtml
End
Get ComAppend Of hoSbHtml "<html><body><p>This is an HTML email with an embedded image.</p>" To iSuccess
Get ComAppend Of hoSbHtml '<p><img src="cid:CONTENT_ID_STARFISH" /></p></body></html>' To iSuccess
Get ComReplace Of hoSbHtml "CONTENT_ID_STARFISH" sContentIdStarfish To iNumReplacements
Get ComGetAsString Of hoSbHtml To sTemp1
Send ComSetHtmlBody To hoEmail sTemp1
Get pvComObject of hoEmail to vEmail
Get ComSendEmail Of hoMailman vEmail To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoMailman To sTemp1
Showln sTemp1
End
Else Begin
Showln "Mail Sent!"
End
End_Procedure