Sample code for 30+ languages & platforms
DataFlex

Count the Attachments in an Email

See more Email Object Examples

Demonstrates the read-only Chilkat Email.NumAttachments property, which is the number of ordinary attachments in the email. Attachment indexes are zero-based. Related resources inside a multipart/related enclosure are counted separately by NumRelatedItems, and embedded message/rfc822 emails by NumAttachedMessages. This example adds two attachments and prints the count.

Background: An "attachment" is a MIME part meant to be saved or opened as a separate file, as opposed to being displayed as the message body. Chilkat decides whether a part is an attachment by weighing its MIME structure, content type, and Content-Disposition together — so a part can count as an attachment even without an explicit Content-Disposition: attachment header. Note that if an email was downloaded from an IMAP server without its attachment data, this property reflects only what is actually present in the object.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoEmail
    Boolean iSuccess
    Integer iTemp1

    //  Demonstrates the read-only Email.NumAttachments property, which is the number
    //  of ordinary attachments contained in the email.  Attachment indexes are zero-based.

    Get Create (RefClass(cComChilkatEmail)) To hoEmail
    If (Not(IsComObjectCreated(hoEmail))) Begin
        Send CreateComObject of hoEmail
    End
    Set ComSubject Of hoEmail To "Email with attachments"
    Set ComBody Of hoEmail To "Two files are attached."

    //  Add two string attachments.
    Get ComAddStringAttachment Of hoEmail "readme.txt" "This is the first attachment." To iSuccess
    Get ComAddStringAttachment Of hoEmail "notes.txt" "This is the second attachment." To iSuccess

    Get ComNumAttachments Of hoEmail To iTemp1
    Showln "NumAttachments = " iTemp1


End_Procedure