SQL Server
SQL Server
Get Contents of a T-Mobile Text Message (as Email)
See more Email Object Examples
How to get the contents of an email that originated as a T-Mobile SMS text.
Chilkat SQL Server Downloads
-- 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)
DECLARE @success int
SELECT @success = 0
-- First, for the purpose of understanding the structure of the MIME,
-- let's load the MIME into a Chilkat MIME object and examine the MIME structure.
DECLARE @mime int
EXEC @hr = sp_OACreate 'Chilkat.Mime', @mime OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
EXEC sp_OAMethod @mime, 'LoadMimeFile', @success OUT, 'qa_data/eml/TMobileTextMsg.eml'
-- Show the MIME structure in text format (as opposed to XML format).
EXEC sp_OAMethod @mime, 'GetStructure', @sTmp0 OUT, 'text'
PRINT @sTmp0
-- The MIME structure for our test email looks like this:
-- multipart/related
-- text/html
-- text/plain
-- image/gif
-- image/gif
-- image/gif
-- The HTML part is not considered a "related item" because the related items
-- are defined as being related to the HTML part. Therefore, we should always
-- expect to find a text/html part under a multipart/related. The HTML parts
-- is simply the HTML body, and the other parts are the related items.
-- If the text/plain part was to be considered as an alternative body,
-- then a properly structured email would include a multipart/alternative structure.
DECLARE @email int
EXEC @hr = sp_OACreate 'Chilkat.Email', @email OUT
EXEC sp_OAMethod @email, 'LoadEml', @success OUT, 'qa_data/eml/TMobileTextMsg.eml'
-- We should see 4 related items.
EXEC sp_OAGetProperty @email, 'NumRelatedItems', @iTmp0 OUT
PRINT 'Num Related Items = ' + @iTmp0
-- There should be 0 attachments.
EXEC sp_OAGetProperty @email, 'NumAttachments', @iTmp0 OUT
PRINT 'Num Attachments = ' + @iTmp0
-- Find the indices of the text/plain related part, and the text/html related part
DECLARE @i int
SELECT @i = 0
DECLARE @numRelatedItems int
EXEC sp_OAGetProperty @email, 'NumRelatedItems', @numRelatedItems OUT
DECLARE @sbContentType int
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbContentType OUT
WHILE @i < @numRelatedItems
BEGIN
EXEC sp_OAMethod @email, 'GetRelatedContentType', @sTmp0 OUT, @i
EXEC sp_OAMethod @sbContentType, 'Append', @success OUT, @sTmp0
EXEC sp_OAMethod @sbContentType, 'GetAsString', @sTmp0 OUT
PRINT @i + ': ' + @sTmp0
EXEC sp_OAMethod @sbContentType, 'ContentsEqual', @iTmp0 OUT, 'text/plain', 0
IF @iTmp0
BEGIN
PRINT '---- text/plain part:'
EXEC sp_OAMethod @email, 'GetRelatedString', @sTmp0 OUT, @i, 'utf-8'
PRINT @sTmp0
END
EXEC sp_OAMethod @sbContentType, 'Clear', NULL
SELECT @i = @i + 1
END
EXEC @hr = sp_OADestroy @mime
EXEC @hr = sp_OADestroy @email
EXEC @hr = sp_OADestroy @sbContentType
END
GO