Ruby Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Ruby
Examples

Quick Start
Ruby Unicode
Ruby Byte Array
Ruby Certs
Ruby Email
Ruby Encryption
Ruby FTP
HTML-to-XML
Ruby HTTP
Ruby IMAP
Ruby MHT
Ruby MIME
Ruby S/MIME
Ruby Signatures
Ruby RSA
Ruby Socket
Ruby Spider
Ruby Tar
Ruby Upload
Ruby XML
Ruby XMP
Ruby Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
DH Key Exchange
DSA

Unreleased...
LZW
Bz2
Icon

 

 

 

 

 

 

 

Load MHT and Send as Email

Load a .MHT file and send it as email.

Download Chilkat Ruby Library

require 'chilkat'

#  The mailman object is used for sending and receiving email.
mailman = Chilkat::CkMailMan.new()

#  Any string argument automatically begins the 30-day trial.
success = mailman.UnlockComponent("30-day trial")
if (success != true)
    print "Component unlock failed" + "\n"
    exit
end

#  Set the SMTP server.
mailman.put_SmtpHost("smtp.comcast.net")

#  Create a new email object
email = Chilkat::CkEmail.new()

#  MHT is MIME and therefore can be loaded directly
#  into an email object via the email.LoadEml method.
#  However, if the HTML sub-part of the MIME contains
#  header fields such as this:

#  Content-ID: <BalanceSheet>
#  Content-Disposition: inline;
#  	filename="BalanceSheet"
#  Content-Type: text/html;
#  	name="BalanceSheet";
#  	charset="utf-8"

#  Microsoft Outlook will interpret this as an attached HTML file
#  rather than the HTML body of the email.  Interestingly,
#  Mozilla Thunderbird handles it correctly, but Outlook does not.
#  Google's GMail also handles it correctly.  Yahoo Mail doesn't
#  know what to do and displays nothing -- not even the "attachment".

#  Rather than loading the MHT into the email object, we'll
#  first load it into a Chilkat MIME object and check for
#  these headers.  We want the header fields of the HTML sub-part
#  to look like this:

#  Content-Type: text/html;
#  	charset="utf-8"

#  To do so, we'll remove the Content-ID and Content-Disposition
#  header fields, and the "name" attribute from the
#  Content-Type header.

#  Note: Chilkat MIME is a separate product.  This code
#  would require licenses to both Chilkat Email and Chilkat Mime,
#  or alternatively a Chilkat Bundle license (which includes
#  all Chilkat components).

mime = Chilkat::CkMime.new()

success = mime.UnlockComponent("Anything for 30-day trial")
if (success != true)
    print "Failed to unlock MIME component" + "\n"
    exit
end

success = mime.LoadMimeFile("test.mht")
if (success != true)
    print mime.lastErrorText() + "\n"
    exit
end

#  Is this a multipart/related?  If so, find the HTML part,
#  which should be the 1st sub-part.
if (mime.IsMultipartRelated() == true)
    #  Find the HTML part.

    n = mime.get_NumParts()

    for i in 0 .. n - 1
        mimePart = mime.GetPart(i)
        if (mimePart.IsHtml() == true)
            break
        end

    end
    if (!(mimePart == nil ))
        #  Remove these header fields:
        mimePart.SetHeaderField("Content-Disposition","")
        mimePart.SetHeaderField("Content-ID","")
        #  Remove the "name" attribute from the Content-Type header:
        mimePart.put_Name("")

    end

end

email.SetFromMimeText(mime.getMime())

email.put_Subject("This is a test")

email.put_From("Chilkat Support <support@chilkatsoft.com>")
email.AddTo("Chilkat Admin","admin@chilkatsoft.com")

success = mailman.SendEmail(email)
if (success != true)
    print mailman.lastErrorText() + "\n"
else
    print "Mail Sent!" + "\n"
end

 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2007 Chilkat Software, Inc. All Rights Reserved.