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
(SQL Server) Send HTML Email with AttachmentsDemonstrates how to send an HTML email with file attachments.
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @iTmp0 int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- This example requires the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. DECLARE @mailman int -- Use "Chilkat_9_5_0.MailMan" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.MailMan', @mailman OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END EXEC sp_OASetProperty @mailman, 'SmtpHost', 'smtp.my-starttls-mail-server.com' EXEC sp_OASetProperty @mailman, 'SmtpUsername', 'MY-SMTP-USERNAME' EXEC sp_OASetProperty @mailman, 'SmtpPassword', 'MY-SMTP-PASSWORD' EXEC sp_OASetProperty @mailman, 'StartTLS', 1 EXEC sp_OASetProperty @mailman, 'SmtpPort', 587 -- Create a new email object DECLARE @email int -- Use "Chilkat_9_5_0.Email" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Email', @email OUT EXEC sp_OASetProperty @email, 'Subject', 'Test SMTP API to Send HTML Email with Attachments' EXEC sp_OASetProperty @email, 'From', 'Joe Programmer <joe@my-starttls-mail-server.com>' DECLARE @success int EXEC sp_OAMethod @email, 'AddTo', @success OUT, 'Chilkat Support', 'support@chilkatsoft.com' -- Add a plain-text alternative body, which will likely never be seen. -- (It is shown if the receiving email client is incapable of displaying HTML email.) EXEC sp_OAMethod @email, 'AddPlainTextAlternativeBody', @success OUT, 'This is a plain-text alternative body...' -- Our HTML will include an image, so add the related image here. DECLARE @contentIdStarfish nvarchar(4000) EXEC sp_OAMethod @email, 'AddRelatedFile', @contentIdStarfish OUT, 'qa_data/jpg/starfish.jpg' EXEC sp_OAGetProperty @email, 'LastMethodSuccess', @iTmp0 OUT IF @iTmp0 <> 1 BEGIN EXEC sp_OAGetProperty @email, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @mailman EXEC @hr = sp_OADestroy @email RETURN END -- The src attribute for the image tag is set to the contentIdStarfish: DECLARE @sbHtml int -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbHtml OUT EXEC sp_OAMethod @sbHtml, 'Append', @success OUT, '<html><body><p>This is an HTML email with an embedded image.</p>' EXEC sp_OAMethod @sbHtml, 'Append', @success OUT, '<p><img src="cid:CONTENT_ID_STARFISH" /></p></body></html>' DECLARE @numReplacements int EXEC sp_OAMethod @sbHtml, 'Replace', @numReplacements OUT, 'CONTENT_ID_STARFISH', @contentIdStarfish EXEC sp_OAMethod @sbHtml, 'GetAsString', @sTmp0 OUT EXEC sp_OAMethod @email, 'AddHtmlAlternativeBody', @success OUT, @sTmp0 -- Finally, add some attachments to the email. -- Add a file attachment. DECLARE @success int EXEC sp_OAMethod @email, 'AddFileAttachment2', @success OUT, 'qa_data/pdf/fishing.pdf', 'application/pdf' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @email, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @mailman EXEC @hr = sp_OADestroy @email EXEC @hr = sp_OADestroy @sbHtml RETURN END -- Add an attachment where the content is contained in a string. DECLARE @content nvarchar(4000) SELECT @content = 'This is the content of the 2nd attached file.' EXEC sp_OAMethod @email, 'AddStringAttachment', @success OUT, 'someText.txt', @content -- Send the HTML email. EXEC sp_OAMethod @mailman, 'SendEmail', @success OUT, @email IF @success <> 1 BEGIN EXEC sp_OAGetProperty @mailman, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @mailman EXEC @hr = sp_OADestroy @email EXEC @hr = sp_OADestroy @sbHtml RETURN END EXEC sp_OAMethod @mailman, 'CloseSmtpConnection', @success OUT IF @success <> 1 BEGIN PRINT 'Connection to SMTP server not closed cleanly.' END PRINT 'HTML email with attachments sent!' EXEC @hr = sp_OADestroy @mailman EXEC @hr = sp_OADestroy @email EXEC @hr = sp_OADestroy @sbHtml END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.