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) MailMan GetSentToEmailAddrsDemonstrates how to get the email addresses accepted by the SMTP server during an SMTP send.
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- This example assumes the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. -- Demonstrates how to get the successful recipients for the last email sent. -- Note: Success does not ensure actual delivery, nor does it mean the email address is actually valid. -- It may be that the email address is invalid and will get bounced at the destination. -- Also: An SMTP client (such as Chilkat, Mozilla Thunderbird, etc.) is only responsible for "handing off" the email to the SMTP server -- for delivery (either to a local mailbox, or to a remote mailbox where the SMTP server acts as a relay). -- The SMTP client's task is ended when the SMTP protocol exchange is completed, and the SMTP server says "OK, I've got it and I'll take it from here.". -- If the email never actually gets delivered, then there is a problem downstream of the Chilkat-->SMTP server handoff. 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', 'outlook.office365.com' EXEC sp_OASetProperty @mailman, 'SmtpPort', 587 EXEC sp_OASetProperty @mailman, 'StartTLS', 1 -- Set the SMTP login/password EXEC sp_OASetProperty @mailman, 'SmtpUsername', 'OFFICE365-SMTP-LOGIN' EXEC sp_OASetProperty @mailman, 'SmtpPassword', 'OFFICE365-SMTP-PASSWORD' -- 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', 'Testing for Chilkat API...' EXEC sp_OASetProperty @email, 'Body', 'Testing for Chilkat API...' EXEC sp_OASetProperty @email, 'From', 'Chilkat Support <my-office365-user@mydomain.com>' DECLARE @success int EXEC sp_OAMethod @email, 'AddTo', @success OUT, 'Chilkat Admin', 'admin@chilkatsoft.com' EXEC sp_OAMethod @email, 'AddTo', @success OUT, 'Chilkat Support', 'support@chilkatsoft.com' -- To add more recipients, call AddTo, AddCC, or AddBcc once per recipient. -- Allow SendEmail to succeed even if some recipients are rejected immediately -- by the SMTP server. EXEC sp_OASetProperty @mailman, 'AllOrNone', 0 -- Call SendEmail to connect to the SMTP server and send. -- The connection (i.e. session) to the SMTP server remains -- open so that subsequent SendEmail calls may use the -- same connection. 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 RETURN END EXEC sp_OAMethod @mailman, 'CloseSmtpConnection', @success OUT IF @success <> 1 BEGIN PRINT 'Connection to SMTP server not closed cleanly.' END PRINT 'Mail Sent!' -- Examine which email addresses were accepted by the SMTP server during the SMTP conversation. -- (i.e. during the SendEmail) DECLARE @acceptedAddrs int EXEC sp_OAMethod @mailman, 'GetSentToEmailAddrs', @acceptedAddrs OUT DECLARE @numAddrs int EXEC sp_OAGetProperty @acceptedAddrs, 'Count', @numAddrs OUT DECLARE @i int SELECT @i = 0 WHILE @i < @numAddrs BEGIN EXEC sp_OAMethod @acceptedAddrs, 'GetString', @sTmp0 OUT, @i PRINT 'Accepted recipient ' + @i + ': ' + @sTmp0 SELECT @i = @i + 1 END EXEC @hr = sp_OADestroy @acceptedAddrs EXEC @hr = sp_OADestroy @mailman EXEC @hr = sp_OADestroy @email END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.