PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkMime.pb"
IncludeFile "CkEmail.pb"
Procedure ChilkatExample()
success.i = 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.
mime.i = CkMime::ckCreate()
If mime.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkMime::ckLoadMimeFile(mime,"qa_data/eml/TMobileTextMsg.eml")
; Show the MIME structure in text format (as opposed to XML format).
Debug CkMime::ckGetStructure(mime,"text")
; 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.
email.i = CkEmail::ckCreate()
If email.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkEmail::ckLoadEml(email,"qa_data/eml/TMobileTextMsg.eml")
; We should see 4 related items.
Debug "Num Related Items = " + Str(CkEmail::ckNumRelatedItems(email))
; There should be 0 attachments.
Debug "Num Attachments = " + Str(CkEmail::ckNumAttachments(email))
; Find the indices of the text/plain related part, and the text/html related part
i.i = 0
numRelatedItems.i = CkEmail::ckNumRelatedItems(email)
sbContentType.i = CkStringBuilder::ckCreate()
If sbContentType.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
While i < numRelatedItems
CkStringBuilder::ckAppend(sbContentType,CkEmail::ckGetRelatedContentType(email,i))
Debug Str(i) + ": " + CkStringBuilder::ckGetAsString(sbContentType)
If CkStringBuilder::ckContentsEqual(sbContentType,"text/plain",0)
Debug "---- text/plain part:"
Debug CkEmail::ckGetRelatedString(email,i,"utf-8")
EndIf
CkStringBuilder::ckClear(sbContentType)
i = i + 1
Wend
CkMime::ckDispose(mime)
CkEmail::ckDispose(email)
CkStringBuilder::ckDispose(sbContentType)
ProcedureReturn
EndProcedure