- The Body
property, and the methods to get the plain-text body from
multipart/report emails now work properly.
method returns 1 if the email has an HTML body, and
0 if it does not.
method returns 1 if the email has a plain-text body,
and 0 if it does not.
returns 1 if the email is a multipart/report, which
is the content-type for bounced email notifications. Chilkat
will soon release a new product for handling bounced emails.
to keep versions synchronized with Chilkat WebMail)
- Fixed ZipAttachments
and UnzipAttachments methods which sometimes failed.
- When attachments
are added, files are opened for file sharing as opposed
to exclusive access.
method for sending pre-constructed MIME emails intact.
with sending Czech email.
attachment names with non us-ascii characters handled correctly.
SetAttachmentFilename method broke in the v5.0.0 release,
and has been fixed.
some email clients, HTML emails having file attachments
did not display perfectly. This only occured when adding
related images, body parts, and file attachments in certain
orders. (Chilkat Mail relieves you from the burden of
manually structuring y our multipart MIME message and
does all the work so you don't have to be a MIME expert.)
a hash algorithm for signing is not explicitly specified,
and this is usually the case, Chilkat was by default selecting
the 1st hash algorithm returned by the Cryptographic Service
Provider. Instead, it first looks for SHA-1, then MD2,
then MD5, ... and when it runs out of well-known algorithms,
it will simply choose the first one offered by the CSP.
This will ensure that your signed emails use the same
hash algorithm if one is not explicitly set via the ChilkatCSP
to Outlook, Chilkat includes any intermediate certificates
in the certificate chain to the root authority (except
the root itself). It was possible for Chilkat to choose
expired certs before, but not anymore.
the FromName property is set *after* the FromAddr property,
it was getting ignored. This is now fixed.
the RemoveHeaderField method.
v5.0.0 version caused AddFileAttachment to break in some
instances and on some systems such that the file was attached
but empty. This only occured on some Win98 and WinME systems.
It is now fixed.
Message-ID header field is now regenerated during a send.
With some SMTP servers, when the same email object is
reused, the fact that multiple messages had the same ID
caused mail non-delivery problems. This problem did not
occur when separate email objects were used because each
email object had its own unique message-id.
Added a ConnectTimeout
property to ChilkatMailMan. The default ConnectTimeout is
methods to ChilkatEmailBundle to allow for sorting emails
by subject, date, sender, and recipient.
Added the intelligence
to automatically handle non-usascii characters passed to
the following methods/properties without first calling QEncodeString
way of passing a string with non-usascii characters is to
use QEncodeString like this:
email.Body = QEncodeString("string
with non-ascii chars","charset_name")
is something like shift-jis, iso-8859-1, big5, etc.)
In this version
(5.0.4) Chilkat Mail will automatically detect non-usascii
input and automatically Q-encode it to utf-8. If the non-usascii
characters entirely fall within the bounds of iso-8859-1,
then iso-8859-1 is used instead of utf-8.
this code will automatically Q-encode the subject to iso-8859-1.
email.Subject = "Here
are some accented chars - ŕ é"
did not work correctly if the first argument was a zero-length
parsing of dates in email headers, especially if a malformed
date string is encountered.
that vastly improves international email capabilities. Please
refer to this page for details.
fixed with this version:
Date property returned the wrong times.
emails to XML is improved such that safeguards are now
in place to prevent binary data from creeping into XML
This is an object with a single
method, NewEmail, which returns a new (and empty)
ChilkatEmail object. The EmailFactory object can be placed
on VB and Delphi forms.
This is an object with a single
method, NewBundle, which returns a new (and empty)
ChilkatEmailBundle object. The BundleFactory object can
be placed on VB and Delphi forms.
Chilkat Mail v5.0.0 removes the following COM Interfaces:
IChilkatEmail2, IChilkatMailMan2, IChilkatEmailBundle2.
The methods and properties in these interfaces have been
added to the IChilkatEmail, IChilkatMailMan, and IChilkatEmailBundle
interfaces. The presence of the "2" interfaces
caused problems in some language IDEs. This change may require
a re-import or re-compile of the ActiveX in some development
performance of reading email by greatly reducing the CPU
consumption when reading larger emails.
for intermediate certification authorities are now included
in the detached signature that is created when sending
signed email. This allows the recipient (receiving email
client) to reconstruct the chain-of-trust to the root
CA, especially if those intermediate certificates are
not already installed on the recipient's computer. Note
that the root CA certificate is never included in the
did not raise an error if the EML file could not be loaded
for reasons such as "file not found" or permissions.
- Methods such
as CopyMail, GetAllHeaders, etc. will now work with older
POP3 servers that do not support the UIDL command.
- The BCC list
is now saved to XML in the SaveXml method. When loading
XML, the BCC list is restored.
new methods allow attachments and HTML-related images and
other items to be attached directly from memory, as opposed
to having a file source.
- Add an attachment directly from a memory buffer.
- Add an HTML-related item directly from a memory buffer.
property and method allow access to emails that are attached
to an email. (These are "message/rfc822" content-type
subparts.) One way of generating such an email is to forward
an email "as an attachment" from an email client
such as Yahoo! Mail online.
- The number of attached email messages.
- Returns a ChilkatEmail object representing the attached
method accessed the registry in read/write mode to determine
the queue directory, and this has been changed to access
it in read-only mode.
Fixed a problem
that can infrequently occur when B-encoding email header
Added the following
properties and methods for accessing the error log when
an error occurs:
ErrorLogXml As String, read-only. Returns the error
log in XML format.
ErrorLogHtml As String, read-only. Returns the
error log in HTML format.
ErrorLogText As String, read-only. Returns the
error log in plain-text format.
ErrorLogClear( ) Clears the error log.
trial key problems (v4.4.4). Other minor updates were to
keep up-to-date with underlying architecture changes.
Support for Dislaying HTML or Plain-Text Email in a WebBrowser
method assists in dislaying HTML or plain-text mail in a
Web Browser control. Click
HERE for more information.
Added methods to assist in using multibyte character
encodings such as utf-8, shift-JIS, euc-kr, iso-2022-jp,
big5, gb2312, etc. These methods allow you to set email
body and header fields without ever needing to convert to
Unicode. Here is a summary:
MbPlainTextBody As Variant read/write
- This property
allows the email body (or plain-text body in a multipart/alternative
email) to be accessed or set directly from multibyte (non-Unicode)
MbHtmlBody As Variant read/write
- This property
allows the email HTML body to be accessed or set directly
from multibyte (non-Unicode) character data.
MbEncode (mbString As Variant, charset As String) As String
- Encodes a
multibyte string using "Q" or "B"
encoding such that the returned Unicode string can be
used to set any of the email's header fields, such as
Fixed a problem where UIDLs were not available when
getting email headers using the GetHeaders method.
- Added the
ChilkatMailMan.ResetDateOnLoad property. This controls
whether the Email date is reset to the current date/time
whenever it is re-created by loading it from a file or
memory. This affects the following methods: LoadMbx, LoadEml,
LoadMime, LoadOutlookFolder, LoadXmlFile, and LoadXmlString.
- Added the
SendCGI method for resolving the outbound
SMTP port 25 blocking issue.
- Added the
SendQ method for sending emails through the Chilkat smtpQ
- The GetLog
method has been removed. Chilkat Crypt now keeps its error/information
log internally instead of using the Chilkat Log component.
This provides for a single-DLL install.
- Updated to
accept "Lite" unlock codes to unlock basic functionality.
- Fixed a problem
with using replacement patterns in HTML email.
- Added a new
ChilkatEmail method: SaveEml. This saves the email in
Outlook Express EML format, which is essentially a MIME
- Fixed a problem
with the DropAttachments method where images in HTML emails
were being dropped as well.
- Fixed a ZipAttachments
- The ZipAttachments
and UnzipAttachments methods no longer require Chilkat
Zip to be purchased. The methods do require Chilkat Zip
to be installed however.
- The AesEncrypt
and AesDecrypt methods no longer require Chilkat Crypt
to be purchased, and also no longer require Chilkat Crypt
to be installed. The encryption and decryption is implemented
directly within the Chilkat Mail DLL.
- The ChilkatEmail.ZipUnlockCode,
CryptUnlockCode, and MimeUnlockCode properties have been
removed because they are no longer needed.
- Fixed a problem
with adding attachments to HTML emails. This problem caused
the email to not display properly in some email clients.
Specifically, Yahoo Mail, Hotmail, and other online mail
Web interfaces. Chilkat Mail now properly constructs the
email such that file attachments are properly recognized
as such, and HTML related image and style sheet "attachments"
are recognized as part of the HTML body proper.
- Added two
new methods: GetEncryptedByCert, GetSignedByCert. These
methods return the ChilkatCert object of the certificate
associated with a received signed or encrypted email.
- Added the
ReadTimeout property: the maximum number of seconds to
wait for new data to arrive from the POP3 server. A value
of 0 (the default) sets the timeout to infinity. Setting
a reasonable timeout value will prevent your application
from hanging if the POP3 server stops responding.
- Fixed LoadXmlFile,
which returned a message count of 0 in some cases.
popular adoption of Chilkat Mail has created email communications
and support burdens that force us to charge a small amount
for using this previously free component. Our intent is
to keep the price as low as possible. Current users can
continue to use version 3.2.4, but must purchase a license
to upgrade to 4.0.0 and beyond.
- Updated because
of improvements in the shared underlying Chilkat common
architecture relating to improved error reporting in some
- Updated because
of charset conversion fixes in the underlying Chilkat
did not recognize uppercase file extensions for the purpose
of setting MIME content types.
- The Chilkat
Charset component is no longer needed for character conversions.
Chilkat Mail will do the conversions without any external
information is now added to the error log when reporting
NTLM authentication failures.
is no longer used, and is not present in this version.
This supporting DLL has been removed from all Chilkat
products as of 9/18/2002.
- The "Received"
header field is no longer parsed. The only effect is that
when an email is saved as XML, the attribute/value name
pairs will not be present, and the entire content will
appear between <received> and </received>
- Events have
changed. The MessageProc event callback has been replaced
by SendPercentDone and ReadPercentDone.
vs. B-Encoding for non-ascii emails: Japanese and other
non-western languages will use B-Encoding for header fields
rather than Q-Encoding. Western languages still use Q-Encoding.
- The "Received"
header fields were not properly re-saved and re-loaded
to XML. This has been fixed.
- Calling AddPlainTextAlternativeBody
after an HTML body was already present caused the HTML
body to not be encoded as quoted-printable. This has been
fixed -- the email will be properly constructed regardless
of the order of method calls.
- Filters did
not work for the email body. This has been fixed.
charsets should now work correctly.
- SetCSP now
works for emails that are both signed AND encrypted.
regarding SetReplacePattern in HTML emails have been resolved.
became broken in version 2.9.6, and is now fixed.
- 128-bit RC2
and 3DES algorithms will now work when using other Cryptographic
Service Providers via the SetCSP method.
- The X-UIDL
field is assured of being present in all emails or headers
downloaded from POP3 servers.
returned 1 (total success) in cases where bad emails existed.
It now returns 0 as it should.
introduced a problem where the POP3 connection was not closed.
This was an intentional feature provided in the caching
mechanism -- to try to keep a POP3 connection alive between
calls, but apparently it caused problems with some POP3
servers (not all of them). Until this is fully understood,
the POP3 connection is closed and re-opened with each method
call -- thus backing-out this optimization that was introduced
Monitoring in FetchEmail, FetchMultiple, and GetFullEmail
has been added.
and proper Q-Encoding for header fields (From, To, CC,
Subject) when sending emails in different charset, when
email is multipart.
- The Size
property is now correct after only the header is downloaded.
mail, a caching mechanism is now in place to cache email
headers, size, and UIDL information such that the POP3 server
does not always need to be contacted to fetch information
that is already in the cache.
mechanism is a stepping stone to building new features such
as "Read New" or "Fetch Unread".
all attachments into a single Zip attachment.
with Chilkat Zip to easily
replace all existing email attachments with a single Zip
file attachment. See ZipAttachments.
Zip attachments with the Zip file contents.
with Chilkat Zip to easily
expand and replace all Zip attachments with their contents.
AES symmetric encryption/decryption of all message parts.
with Chilkat Crypt to encrypt/decrypt
the message body, all alternative bodies, related items,
and attachments using 128-bit encryption. See AesEncrypt
to/from Chilkat S/MIME objects.
with Chilkat S/MIME to provide general-purpose low-level
MIME message manipulation that may not have been possible
- New install/uninstall
- Updated icons
to "Chilkat Software Inc" instead of "Chilkat
Software, Inc". The comma in the directory name causes
the icons to not show properly in IDEs such as Delphi.
- MIME message
parts that do not have "attachment" content-dispositions,
but have Base64 encodings and a file "name"
attribute in the content-disposition are now considered
spaces are automatically removed from email addresses.
(Not the name part)
and GetPlainTextBody will return the text/html or text/plain
body for non-multipart/alternative messages.
- The LoadEml
method was added to allow Outlook Express EML files to
- The DeleteByUidl
method was added to make it easy to delete a single email
at a time.
- Empty body
strings will no longer cause trouble.
- If the attachment
filename is not in the content-disposition header field,
it will get it from the content-type header field. If
not present there, then it will generate a unique name
- Problem with
unmatched double-quotes in header fields has been resolved.
- Full control
over the Cryptographic Service Provider (CSP), key container,
encryption and hash algorithms used for encryption and
digital signature creation through the ChilkatCSP
object. This should allow for the use of Smart Cards.
- Charset is
now properly propagated to multipart/alternative and multipart/related
message subparts, including HTML parts.
an email with an attachment is multipart/mixed with an
attachment subpart, where the content-disposition is "attachment".
In very rare situations, the top-level message part is
an attachment, and there is no message body. Chilkat Mail
now handles these situations.
- The ChilkatMailMan.ReceiveCharset
property can be set to automatically convert all incoming
emails to a specified charset. All "Q" and "B"
encoded header fields are converted, as well as all text
parts and subparts. The Chilkat
Charset Convert component must be installed for this
now automatically decoded in message subparts, such as
- Charset properly
maintained in multipart/alternative.
- Empty body
issues resolved in multipart/alternative.
property - the size, in bytes, of the email including
all parts and attachments.
property - when the email is sent, the appropriate header
field is set to request a return receipt.
method - creates an identical copy of the email object.
method - creates a reply email object from an existing
method - creates a "forward" email object from
an existing email.
method - allows you to add a file attachment AND specify
the content type.
and DeleteMail became broken in v2.8.3, and is now fixed.
- The paperclip
icon now displays properly in Outlook when an email with
attachments (sent by Chilkat Mail) is received
introduced in v2.8.3 with regards to signing and encrypting
- Emails infected
with the Klez virus were not parsed correctly. Chilkat
Mail does not recognize the virus as anything special,
but the way that Klez modified the MIME message caused
a problem in parsing.
- HTML emails
with embedded images did not display correctly in Netscape
Communicator, although they did display correctly in Outlook
and Eudora. This has been fixed so that the emails are
correctly displayed in all three clients.
have been added to provide the ability to explicitly set
the encryption algorithm used when sending encrypted email.
By default, the RC4 algorithm is used.
Sets the encryption algorithm to RC2 (40-bit). This is
weak encryption, and not recommended.
This is the default.
- Fixed various
- Fixed problem
when setting the charset and sending signed and/or encrypted
now works correctly.
"unable to open registry key" error messages,
which were not really errors and falsley indicated a problem.
the StartMailWatch and StopMailWatch methods. The implementation
for this involving background threads was not sound, and
destablized the component. To watch for email, you should
create a separate thread in your own program and periodically
the location of the "Chilkat" certificate store
from HKEY_CURRENT_USER to HKEY_LOCAL_MACHINE.
the certificate store search order to first check the
HKEY_LOCAL_MACHINE certificate store. Private keys can
be accessed from certificates located in this store without
the side-effect of a warning dialog popping up, which
is an annoyance in applications, and causes the web-server
to hang in ASP apps.
the format of the generated message-id to include an "@hostname"
because certain servers did not allow emails to pass through
that did not have message ids formatted in this way.
- Fixed problems
with using ChilkatMailMan.StartMailWatch in Visual Basic.
- Fixed a problem
- New methods
to get and set certificates for an individual email: GetEncryptCert,
GetSigningCert, SetEncryptCert, SetSigningCert. These
methods integrate with the Chilkat Certificate control
(download and install separately) and allow you to explicitly
set the certificate to be used for signing and encryption.
- New convenience
method: ChilkatEmail.GetFileContent allows you to easily
get the contents of a file. To set the email body from
a file, you would do this: email.Body = email.GetFileContent("C:\something.txt")
- New convenience
method: ChilkatMailMan.SaveXmlLog allows you to save the
XML log to a file without having to first get the Chilkat
Log object via ChilkatMailMan.GetLog.
- A new property,
AutoSaveCerts, was added to control whether certificates
embedded in incoming emails are automatically stored in
the "Chilkat" certificate store.
- A new method,
GetUidls, will retrieve the UIDLs from a POP3 server.
No new features, only fixes:
- Fixes hanging
problem when using from ASP.
- Fixed: Digital
signature (S/MIME) verification did not work properly
if the certificate's public key was not included in the
- Fixed: Problem
setting the Body property after adding attachments
Added five methods to ChilkatEmail:
allow you to get information regarding each part of a multipart-related
email. Click here
for more information.
Modification: Sub-parts of multipart-mixed
messages having content dispositions of "inline"
will now be considered as attachments, making them accessible
for saving to files and getting information about them, such
Fixed: When sending an email that is both signed
and encrypted, the recipient's certificate was used for signing
when it should be the sender's certificate. (Sending signed-only
emails correctly used the sender's certificate.)
Fixed: Version 2.4.0 was mistakenly released
with events excluded. This is now fixed so progress events
and mail notification events will now work.
Lists - Ability to use both Outlook distribution lists as
well as simple text file distribution lists.
An email can contain 0 "To" recipients, if in
this case the email will be addressed to <undisclosed-recipients>.
Authentication Method: A new property allows you to force
the authentication method that Chilkat Mail should use when
logging into an SMTP server.
Contacts: Automatically create contacts in an Outlook folder
for all received emails.
Header Fields: Ability to add custom header fields. Also,
field beginning with "CKX-" are special in that
they do not get transmitted when an email is sent, but remain
part of the email when persisted to XML or MBX files.
Fixed: When a email contains a "Reply-To:" header-field,
the method ChilkatEmail.GetTo() delivers the content of
the "Reply-To:" field instead of the recipients specified
in a following "To:" header field.
email clients send emails with a charset specified as "default".
This is now correctly handled.
The ChilkatCPC2_01.dll was not correctly self-registering.
This package includes ChilkatCPC2_02.dll, which should correctly
Added the SMTP NTLM authentication method. This allows email
clients to login to SMTP servers configured to use the Windows
(SSPI) authentication. A new property, SmtpLoginDomain,
has been added to allow you to specify the Windows domain,
if any, along with your username and password.
to check the accessibility of SMTP and POP servers. These
methods simply check to see if a connection can be established,
and if the initial "hello" is received from the
servers. Visual Basic and C++ examples are provided in the
to check login username/passwords for SMTP and POP servers.
These methods can be used to verify whether a username/password
is valid for a particular SMTP or POP server. Visual Basic
and C++ examples are provided in the download.
and more informative "Rich" error messages for
Visual Basic users. (These are the message you see in a
pop-up window when a method fails.)
The CheckMail method now returns -1 for an error condition.
A return value of 0 means the check was successful, but
there are no messages on the POP server.
The SendEmail method now returns a failure condition
correctly when an email cannot be sent because of errors.
Updated to include miscellaneous improvements in the underlying
common Chilkat architecture. No bugs are known to need fixing,
and no new features were added.
Fixed a problem where a cryptographic service provider (CSP)
is sometimes not obtained on some systems. Also fixed a problem
so that attachment filenames are automatically Q-decoded if
they are Q-encoded, which often happens with non us-ascii
StartMailWatch now works correctly in Visual Basic programs.
Also added progress monitoring for reading and sending emails.
Check the example programs included in the download.
Reversed the order of SMTP LOGIN and PLAIN authorization mechanisms.
When an SMTP server supports both, LOGIN will be chosen first
instead of PLAIN. While both login methods are equal in terms
of security (or lack thereof) , some SMTP servers do not work
correctly with the PLAIN mechanism.
Updated to include the latest underlying common Chilkat architecture
improvements. No new functionality.
and DeleteEmail did not work properly with some POP3 servers.
These methods should now work correctly.
- Windows 95/98
DLL registration problems. Windows 95 systems also need
to have the Windows
Socket 2 update installed.
and DeleteEmail did not work properly with multipart/alternative
- Huge performance
improvements with respect to CPU and memory usage when
emails with large attachments are sent.
- All email
header fields, as well as the email body, should be automatically
decoded if non-US character data is received "Q-encoded"
or "B-encoded". This was mostly working, but
one of our users pointed out that the subject field (in
Hebrew) was not being decoded. All languages in all header
fields should now be properly and automatically decoded.
- Methods that
generate XML always used the ISO-8859-1 character encoding.
If non-US character data is detected, the XML will use
the UTF-8 encoding.
for non-recognized file extensions will automatically
have content types of "application/octet-stream".
Chilkat Mail automatically sets the content type for all
content types recognized by Internet Explorer
Added methods to manage email on mail servers more efficiently.
Eight ChilkatMailMan methods were added. These methods all
related to either deleting emails from the mail server,
or downloading only the headers and first few lines of emails
from the server, as opposed to the entire email.
with large XML files.
- Replace pattern
in Body now works correctly.
- Send via
Outlook with attachments now works correctly.
remove binary characters from text data when converting
to XML to prevent the XML parser from failing.
nesting of CDATA when converting Emails that may already
have CDATA sections
Properties added in v2.03 changed names: ChilkatMailMan.LogMailSentFilename,
Fixed: ChilkatMailMan.SendBundle would report an error when
it really succeeded.
Added two properties: ChilkatMailMan.LogMailSent, ChilkatMailMan.LogMailReceived
Fixed: ChilkatMailMan.StartMailWatch had a crash bug. When
running in the VB IDE, it caused the IDE to exit as well.
|SMTP authentication for
SMTP servers that require a login and password.
|S/MIME security features
allowing you to easily send and receive encrypted or
digitally signed emails. You can also send/receive emails
that are both signed and encrypted.
|MHTML compliant, allowing
you to send/receive multipart/related messages. This
is the standard way of sending HTML with images included
in the email and internally referenced.
|XML features allowing
you to import and export emails to XML format.
support, allowing you to send emails that have both
HTML and plain-text versions of the message.
|Message filtering allowing
you to filter on the email body or any MIME header field.
|Developed using Windows
XP, tested in Windows XP/2000/NT/98/Me/95.
Released to select Beta testing partners.
Fixed: When sending to multiple recipients, the "To"
list did not display correctly on an e-mail client, although
each e-mail does indeed get sent.
Problems occured on systems which don't have ATL.DLL, which
is a Microsoft provided DLL. This version is created such
that ATL.DLL does not need to be present on the system.
Problems with reading emails with very large attachments
have been fixed.
Emails with an empty body and having a single attachment
were not handled correctly. The attachment appeared as the
body. This is fixed in this version. A problem with getting
the "content-info" message header was also fixed.
to multiple recipients, if some of the recipients are invalid,
the remaining valid recipients will still receive the e-mail.
The Chilkat Log object will
contain a report of which recipients failed to receive the
email. To access the log, call the ChilkatMailMan.GetLog
installation was missing a DLL.