Sample code for 30+ languages & platforms
Ruby

Count the Attached Messages in an Email

See more Email Object Examples

Demonstrates the read-only Chilkat Email.NumAttachedMessages property, which is the number of embedded emails represented by message/rfc822 MIME parts. These are counted separately from ordinary attachments and related items, and their indexes are zero-based. This example builds an inner email, attaches it to an outer email as a nested message, and prints the count.

Background: When you "forward as attachment," many mail clients embed the original message as a complete nested email rather than quoting its text. In MIME this appears as a message/rfc822 part — an entire email (its own headers and body) tucked inside the carrier message. Chilkat distinguishes three kinds of enclosed content: ordinary attachments (NumAttachments), inline related items (NumRelatedItems), and these nested messages (NumAttachedMessages). Use GetAttachedEmail to pull an embedded message into its own Email object.

Chilkat Ruby Downloads

Ruby
require 'chilkat'

success = false

#  Demonstrates the read-only Email.NumAttachedMessages property, which is the
#  number of embedded emails (message/rfc822 MIME parts) contained in the email.

#  Create an inner email that we'll attach as a complete nested message.
innerEmail = Chilkat::CkEmail.new()
innerEmail.put_Subject("I am an attached message")
innerEmail.put_Body("This entire email is nested inside another email.")
innerEmail.put_From("alice@example.com")
innerEmail.AddTo("Bob","bob@example.com")

#  Create the outer email and attach the inner email directly as a
#  message/rfc822 part.  AttachEmail attaches a copy of the inner email.
email = Chilkat::CkEmail.new()
email.put_Subject("Outer email with an attached message")
email.put_Body("See the attached email.")
success = email.AttachEmail(innerEmail)

print "NumAttachedMessages = " + email.get_NumAttachedMessages().to_s() + "\n";