Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Tcl) SendRawEmail (HTML Email with PDF Attachment)IMPORTANT: This example requires Chilkat v9.5.0.61 or greater. If this version is not yet available, send email to support@chilktasoft.com. Chilkat will provide the new version upon request. Demonstrates how to use the SES SendRawEmail action to send an email with an attachment. Note: The total size of an SES email cannot exceed 10MB. See SES SendRawEmail for more information.
load ./chilkat.dll # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. # Let's first prepare the email to be sent.. set email [new_CkEmail] CkEmail_put_Subject $email "Test email with PDF attachment." CkEmail_SetHtmlBody $email "<html><body><p>This is a test <b>HTML email with a PDF attachment</b></p></body></html>" # The AddFileAttachment method returns the content-type selected based on the # file extension. This example has no need of using the return value.. set contentType [CkEmail_addFileAttachment $email "qa_data/pdf/fishing.pdf"] if {[CkEmail_get_LastMethodSuccess $email] != 1} then { puts [CkEmail_lastErrorText $email] delete_CkEmail $email exit } # Add the From header, and some recipients. # The From address should be an email address verified for use # as a sender for your Amazon SES account. # The From address will also be the Source parameter for the SES SendRawEmail request. CkEmail_put_From $email "Chilkat Software <admin@chilkatdownload.com>" # Add recipients... # Note: We DO NOT add BCC recipients to the email. A BCC address should not be # present in the MIME header of the email (otherwise it would not be "blind" because # other recipients would be able to see it). # These same addresses will be added as parameters to the SendRawEmail request. # (BCC addresses are added as parameters at that time.) CkEmail_AddTo $email "Mr. Simulator" "success@simulator.amazonses.com" CkEmail_AddCC $email "Chilkat Support" "support@chilkatsoft.com" CkEmail_AddCC $email "Some Yahoo" "somebody@yahoo.com" # Get the MIME of the email to be sent. set mimeStr [CkEmail_getMime $email] # We'll need the MIME base64 encoded for the SES REST request.. set crypt [new_CkCrypt2] set mimeBase64 [CkCrypt2_encodeString $crypt $mimeStr "utf-8" "base64"] # OK.. our MIME email is prepared. Now use Chilkat REST to send it.. set rest [new_CkRest] # Connect to the Amazon AWS REST server. # such as https://email.us-west-2.amazonaws.com/ set bTls 1 set port 443 set bAutoReconnect 1 set success [CkRest_Connect $rest "email.us-west-2.amazonaws.com" $port $bTls $bAutoReconnect] # Provide AWS credentials for the REST call. set authAws [new_CkAuthAws] CkAuthAws_put_AccessKey $authAws "AWS_ACCESS_KEY" CkAuthAws_put_SecretKey $authAws "AWS_SECRET_KEY" # the region should match our URL above.. CkAuthAws_put_Region $authAws "us-west-2" CkAuthAws_put_ServiceName $authAws "ses" CkRest_SetAuthAws $rest $authAws CkRest_AddQueryParam $rest "Action" "SendRawEmail" CkRest_AddQueryParam $rest "RawMessage.Data" $mimeBase64 # Add up to 100 TO, CC, and BCC recipients. # If your SES account is still in the sandbox, you also must verify every recipient email address except for the recipients # provided by the Amazon SES mailbox simulator. (See http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mailbox-simulator.html) CkRest_AddQueryParam $rest "Destination.ToAddresses.member.1" "success@simulator.amazonses.com" # Please do not test by sending email to Chilkat (Thank You!) # Please do not test by sending email to Chilkat (Thank You!) # Please do not test by sending email to Chilkat (Thank You!) CkRest_AddQueryParam $rest "Destination.CcAddresses.member.1" "support@chilkatsoft.com" CkRest_AddQueryParam $rest "Destination.CcAddresses.member.2" "somebody@yahoo.com" CkRest_AddQueryParam $rest "Destination.BccAddresses.member.1" "somebody@gmail.com" CkRest_AddQueryParam $rest "Source" "admin@chilkatdownload.com" # Because there may be a large amount of data in the query params, use a POST # where the params are sent in the body of the HTTP Request. set responseXml [CkRest_fullRequestFormUrlEncoded $rest "POST" "/"] if {[CkRest_get_LastMethodSuccess $rest] != 1} then { puts [CkRest_lastErrorText $rest] delete_CkEmail $email delete_CkCrypt2 $crypt delete_CkRest $rest delete_CkAuthAws $authAws exit } # A successful response will have a status code equal to 200. if {[CkRest_get_ResponseStatusCode $rest] != 200} then { puts "response status code = [CkRest_get_ResponseStatusCode $rest]" puts "response status text = [CkRest_responseStatusText $rest]" puts "response header: [CkRest_responseHeader $rest]" puts "response body: $responseXml" delete_CkEmail $email delete_CkCrypt2 $crypt delete_CkRest $rest delete_CkAuthAws $authAws exit } # Examine the successful XML response. set xml [new_CkXml] CkXml_LoadXml $xml $responseXml puts [CkXml_getXml $xml] # To get the MessageId puts "MessageId: [CkXml_chilkatPath $xml SendEmailResult|MessageId|*]" # A sample successful response: # <?xml version="1.0" encoding="utf-8" ?> # <SendEmailResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/"> # <SendEmailResult> # <MessageId>010101579081d2c1-043c693f-5a23-4c64-a8c1-66187d3725a0-000000</MessageId> # </SendEmailResult> # <ResponseMetadata> # <RequestId>e2b5b480-8a4e-11e6-85cd-21b1f1f6d432</RequestId> # </ResponseMetadata> # </SendEmailResponse> delete_CkEmail $email delete_CkCrypt2 $crypt delete_CkRest $rest delete_CkAuthAws $authAws delete_CkXml $xml |
© 2000-2023 Chilkat Software, Inc. All Rights Reserved.