2436 lines
120 KiB
C
2436 lines
120 KiB
C
|
|
// CkEmailW.h: interface for the CkEmailW class.
|
||
|
|
//
|
||
|
|
//////////////////////////////////////////////////////////////////////
|
||
|
|
|
||
|
|
// This header is generated for Chilkat 11.3.0
|
||
|
|
|
||
|
|
#ifndef _CkEmailW_H
|
||
|
|
#define _CkEmailW_H
|
||
|
|
|
||
|
|
#include "chilkatDefs.h"
|
||
|
|
#include "CkString.h"
|
||
|
|
#include "CkWideCharBase.h"
|
||
|
|
|
||
|
|
class CkBinDataW;
|
||
|
|
class CkByteData;
|
||
|
|
class CkCertW;
|
||
|
|
class CkStringArrayW;
|
||
|
|
class CkJsonObjectW;
|
||
|
|
class CkDateTimeW;
|
||
|
|
class CkStringBuilderW;
|
||
|
|
class CkCertChainW;
|
||
|
|
class CkStringTableW;
|
||
|
|
class CkTaskW;
|
||
|
|
class CkPrivateKeyW;
|
||
|
|
class CkXmlCertVaultW;
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
#if !defined(__sun__) && !defined(__sun)
|
||
|
|
#pragma pack (push, 8)
|
||
|
|
#endif
|
||
|
|
|
||
|
|
|
||
|
|
// CLASS: CkEmailW
|
||
|
|
class CK_VISIBLE_PUBLIC CkEmailW : public CkWideCharBase
|
||
|
|
{
|
||
|
|
|
||
|
|
|
||
|
|
private:
|
||
|
|
|
||
|
|
// Don't allow assignment or copying these objects.
|
||
|
|
CkEmailW(const CkEmailW &);
|
||
|
|
CkEmailW &operator=(const CkEmailW &);
|
||
|
|
|
||
|
|
public:
|
||
|
|
CkEmailW(void);
|
||
|
|
virtual ~CkEmailW(void);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
static CkEmailW *createNew(void);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
void CK_VISIBLE_PRIVATE inject(void *impl);
|
||
|
|
|
||
|
|
// May be called when finished with the object to free/dispose of any
|
||
|
|
// internal resources held by the object.
|
||
|
|
void dispose(void);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// BEGIN PUBLIC INTERFACE
|
||
|
|
|
||
|
|
// ----------------------
|
||
|
|
// Properties
|
||
|
|
// ----------------------
|
||
|
|
// The body of the email. If the email has both HTML and plain-text bodies, this
|
||
|
|
// property returns the HTML body. The GetHtmlBody and GetPlainTextBody methods can
|
||
|
|
// be used to access a specific body. The HasHtmlBody and HasPlainTextBody methods
|
||
|
|
// can be used to determine the presence of a body.
|
||
|
|
void get_Body(CkString &str);
|
||
|
|
// The body of the email. If the email has both HTML and plain-text bodies, this
|
||
|
|
// property returns the HTML body. The GetHtmlBody and GetPlainTextBody methods can
|
||
|
|
// be used to access a specific body. The HasHtmlBody and HasPlainTextBody methods
|
||
|
|
// can be used to determine the presence of a body.
|
||
|
|
const wchar_t *body(void);
|
||
|
|
// The body of the email. If the email has both HTML and plain-text bodies, this
|
||
|
|
// property returns the HTML body. The GetHtmlBody and GetPlainTextBody methods can
|
||
|
|
// be used to access a specific body. The HasHtmlBody and HasPlainTextBody methods
|
||
|
|
// can be used to determine the presence of a body.
|
||
|
|
void put_Body(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// This property is deprecated and applications should use the MailMan.SmtpMailFrom
|
||
|
|
// property instead.
|
||
|
|
void get_BounceAddress(CkString &str);
|
||
|
|
// This property is deprecated and applications should use the MailMan.SmtpMailFrom
|
||
|
|
// property instead.
|
||
|
|
const wchar_t *bounceAddress(void);
|
||
|
|
// This property is deprecated and applications should use the MailMan.SmtpMailFrom
|
||
|
|
// property instead.
|
||
|
|
void put_BounceAddress(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// Represents the main charset of the email, such as utf-8 , iso-8859-1 , Shift_JIS
|
||
|
|
// , us-ascii , etc. This property can be empty if there is no explicit charset,
|
||
|
|
// such as for emails with only us-ascii.
|
||
|
|
//
|
||
|
|
// Setting this property causes Chilkat to use the new charset in HTML and
|
||
|
|
// plain-text bodies, where possible. This can include updating the HTML META tag
|
||
|
|
// in HTML bodies to agree with the charset specified in the email header and also
|
||
|
|
// the byte representation of the HTML body in the email.
|
||
|
|
//
|
||
|
|
void get_Charset(CkString &str);
|
||
|
|
// Represents the main charset of the email, such as utf-8 , iso-8859-1 , Shift_JIS
|
||
|
|
// , us-ascii , etc. This property can be empty if there is no explicit charset,
|
||
|
|
// such as for emails with only us-ascii.
|
||
|
|
//
|
||
|
|
// Setting this property causes Chilkat to use the new charset in HTML and
|
||
|
|
// plain-text bodies, where possible. This can include updating the HTML META tag
|
||
|
|
// in HTML bodies to agree with the charset specified in the email header and also
|
||
|
|
// the byte representation of the HTML body in the email.
|
||
|
|
//
|
||
|
|
const wchar_t *charset(void);
|
||
|
|
// Represents the main charset of the email, such as utf-8 , iso-8859-1 , Shift_JIS
|
||
|
|
// , us-ascii , etc. This property can be empty if there is no explicit charset,
|
||
|
|
// such as for emails with only us-ascii.
|
||
|
|
//
|
||
|
|
// Setting this property causes Chilkat to use the new charset in HTML and
|
||
|
|
// plain-text bodies, where possible. This can include updating the HTML META tag
|
||
|
|
// in HTML bodies to agree with the charset specified in the email header and also
|
||
|
|
// the byte representation of the HTML body in the email.
|
||
|
|
//
|
||
|
|
void put_Charset(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// true if the email arrived encrypted and was successfully decrypted, otherwise
|
||
|
|
// false. This property is only meaningful when the ReceivedEncrypted property is
|
||
|
|
// equal to true.
|
||
|
|
bool get_Decrypted(void);
|
||
|
|
|
||
|
|
// The date/time from the Date header in the UTC/GMT timezone in RFC822 string
|
||
|
|
// form.
|
||
|
|
void get_EmailDateStr(CkString &str);
|
||
|
|
// The date/time from the Date header in the UTC/GMT timezone in RFC822 string
|
||
|
|
// form.
|
||
|
|
const wchar_t *emailDateStr(void);
|
||
|
|
// The date/time from the Date header in the UTC/GMT timezone in RFC822 string
|
||
|
|
// form.
|
||
|
|
void put_EmailDateStr(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// If the email was received encrypted, this contains the details of the
|
||
|
|
// certificate used for encryption.
|
||
|
|
void get_EncryptedBy(CkString &str);
|
||
|
|
// If the email was received encrypted, this contains the details of the
|
||
|
|
// certificate used for encryption.
|
||
|
|
const wchar_t *encryptedBy(void);
|
||
|
|
|
||
|
|
// Set this property to send an email to a list of recipients stored in a plain
|
||
|
|
// text file. The file format is simple: one recipient per line, no comments
|
||
|
|
// allowed, blank lines are ignored.Setting this property is equivalent to adding a
|
||
|
|
// CKX-FileDistList header field to the email. Chilkat Mail treats header fields
|
||
|
|
// beginning with CKX- specially in that these fields are never transmitted with
|
||
|
|
// the email when sent. However, CKX fields are saved and restored when saving to
|
||
|
|
// XML or loading from XML (or MIME). When sending an email containing a
|
||
|
|
// CKX-FileDistList header field, Chilkat Mail will read the distribution list file
|
||
|
|
// and send the email to each recipient. Emails can be sent individually, or with
|
||
|
|
// BCC, 100 recipients at a time. (see the MailMan.SendIndividual property).
|
||
|
|
void get_FileDistList(CkString &str);
|
||
|
|
// Set this property to send an email to a list of recipients stored in a plain
|
||
|
|
// text file. The file format is simple: one recipient per line, no comments
|
||
|
|
// allowed, blank lines are ignored.Setting this property is equivalent to adding a
|
||
|
|
// CKX-FileDistList header field to the email. Chilkat Mail treats header fields
|
||
|
|
// beginning with CKX- specially in that these fields are never transmitted with
|
||
|
|
// the email when sent. However, CKX fields are saved and restored when saving to
|
||
|
|
// XML or loading from XML (or MIME). When sending an email containing a
|
||
|
|
// CKX-FileDistList header field, Chilkat Mail will read the distribution list file
|
||
|
|
// and send the email to each recipient. Emails can be sent individually, or with
|
||
|
|
// BCC, 100 recipients at a time. (see the MailMan.SendIndividual property).
|
||
|
|
const wchar_t *fileDistList(void);
|
||
|
|
// Set this property to send an email to a list of recipients stored in a plain
|
||
|
|
// text file. The file format is simple: one recipient per line, no comments
|
||
|
|
// allowed, blank lines are ignored.Setting this property is equivalent to adding a
|
||
|
|
// CKX-FileDistList header field to the email. Chilkat Mail treats header fields
|
||
|
|
// beginning with CKX- specially in that these fields are never transmitted with
|
||
|
|
// the email when sent. However, CKX fields are saved and restored when saving to
|
||
|
|
// XML or loading from XML (or MIME). When sending an email containing a
|
||
|
|
// CKX-FileDistList header field, Chilkat Mail will read the distribution list file
|
||
|
|
// and send the email to each recipient. Emails can be sent individually, or with
|
||
|
|
// BCC, 100 recipients at a time. (see the MailMan.SendIndividual property).
|
||
|
|
void put_FileDistList(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// The combined name and email address of the sender, such as John Smith . This is
|
||
|
|
// the content that will be placed in the From: header field. If the actual sender
|
||
|
|
// is to be different, then set the Sender property to a different email address.
|
||
|
|
void get_From(CkString &str);
|
||
|
|
// The combined name and email address of the sender, such as John Smith . This is
|
||
|
|
// the content that will be placed in the From: header field. If the actual sender
|
||
|
|
// is to be different, then set the Sender property to a different email address.
|
||
|
|
const wchar_t *ck_from(void);
|
||
|
|
// The combined name and email address of the sender, such as John Smith . This is
|
||
|
|
// the content that will be placed in the From: header field. If the actual sender
|
||
|
|
// is to be different, then set the Sender property to a different email address.
|
||
|
|
void put_From(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// The email address of the sender.
|
||
|
|
void get_FromAddress(CkString &str);
|
||
|
|
// The email address of the sender.
|
||
|
|
const wchar_t *fromAddress(void);
|
||
|
|
// The email address of the sender.
|
||
|
|
void put_FromAddress(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// The name of the sender.
|
||
|
|
void get_FromName(CkString &str);
|
||
|
|
// The name of the sender.
|
||
|
|
const wchar_t *fromName(void);
|
||
|
|
// The name of the sender.
|
||
|
|
void put_FromName(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// The complete MIME header of the email.
|
||
|
|
void get_Header(CkString &str);
|
||
|
|
// The complete MIME header of the email.
|
||
|
|
const wchar_t *header(void);
|
||
|
|
|
||
|
|
// A read-only property that identifies the primary language group for the email.
|
||
|
|
// Possible values are:
|
||
|
|
//
|
||
|
|
// * latin1 (for English and all Western European languages)
|
||
|
|
// * central (for Central European languages such as Polish, Czech,
|
||
|
|
// Hungarian, etc.)
|
||
|
|
// * russian (for Cyrillic languages)
|
||
|
|
// * greek
|
||
|
|
// * turkish
|
||
|
|
// * hebrew
|
||
|
|
// * arabic
|
||
|
|
// * thai
|
||
|
|
// * vietnamese
|
||
|
|
// * chinese
|
||
|
|
// * japanese
|
||
|
|
// * korean
|
||
|
|
// * devanagari
|
||
|
|
// * bengali
|
||
|
|
// * gurmukhi
|
||
|
|
// * gujarati
|
||
|
|
// * oriya
|
||
|
|
// * tamil
|
||
|
|
// * telugu
|
||
|
|
// * kannada
|
||
|
|
// * malayalam
|
||
|
|
// * sinhala
|
||
|
|
// * lao
|
||
|
|
// * tibetan
|
||
|
|
// * myanmar
|
||
|
|
// * georgian
|
||
|
|
// * unknown
|
||
|
|
//
|
||
|
|
// The language group determination is made soley on the subject and
|
||
|
|
// plain-text/HTML email bodies. Characters in the FROM, TO, CC, and other header
|
||
|
|
// fields are not considered.
|
||
|
|
//
|
||
|
|
// The primary determining factor is the characters found in the Subject header
|
||
|
|
// field. For example, if an email contains Japanese in the Subject, but the body
|
||
|
|
// contains Russian characters, it will be considered japanese .
|
||
|
|
//
|
||
|
|
// The language is determined by where the Unicode chars fall in various blocks in
|
||
|
|
// the Unicode Basic Multilingual Plane. For more information, see the book Unicode
|
||
|
|
// Demystified by Richard Gillam.
|
||
|
|
//
|
||
|
|
void get_Language(CkString &str);
|
||
|
|
// A read-only property that identifies the primary language group for the email.
|
||
|
|
// Possible values are:
|
||
|
|
//
|
||
|
|
// * latin1 (for English and all Western European languages)
|
||
|
|
// * central (for Central European languages such as Polish, Czech,
|
||
|
|
// Hungarian, etc.)
|
||
|
|
// * russian (for Cyrillic languages)
|
||
|
|
// * greek
|
||
|
|
// * turkish
|
||
|
|
// * hebrew
|
||
|
|
// * arabic
|
||
|
|
// * thai
|
||
|
|
// * vietnamese
|
||
|
|
// * chinese
|
||
|
|
// * japanese
|
||
|
|
// * korean
|
||
|
|
// * devanagari
|
||
|
|
// * bengali
|
||
|
|
// * gurmukhi
|
||
|
|
// * gujarati
|
||
|
|
// * oriya
|
||
|
|
// * tamil
|
||
|
|
// * telugu
|
||
|
|
// * kannada
|
||
|
|
// * malayalam
|
||
|
|
// * sinhala
|
||
|
|
// * lao
|
||
|
|
// * tibetan
|
||
|
|
// * myanmar
|
||
|
|
// * georgian
|
||
|
|
// * unknown
|
||
|
|
//
|
||
|
|
// The language group determination is made soley on the subject and
|
||
|
|
// plain-text/HTML email bodies. Characters in the FROM, TO, CC, and other header
|
||
|
|
// fields are not considered.
|
||
|
|
//
|
||
|
|
// The primary determining factor is the characters found in the Subject header
|
||
|
|
// field. For example, if an email contains Japanese in the Subject, but the body
|
||
|
|
// contains Russian characters, it will be considered japanese .
|
||
|
|
//
|
||
|
|
// The language is determined by where the Unicode chars fall in various blocks in
|
||
|
|
// the Unicode Basic Multilingual Plane. For more information, see the book Unicode
|
||
|
|
// Demystified by Richard Gillam.
|
||
|
|
//
|
||
|
|
const wchar_t *language(void);
|
||
|
|
|
||
|
|
// The date/time found in the Date header field returned in the local timezone in
|
||
|
|
// RFC822 string form.
|
||
|
|
void get_LocalDateStr(CkString &str);
|
||
|
|
// The date/time found in the Date header field returned in the local timezone in
|
||
|
|
// RFC822 string form.
|
||
|
|
const wchar_t *localDateStr(void);
|
||
|
|
// The date/time found in the Date header field returned in the local timezone in
|
||
|
|
// RFC822 string form.
|
||
|
|
void put_LocalDateStr(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// Identifies the email software that sent the email.
|
||
|
|
void get_Mailer(CkString &str);
|
||
|
|
// Identifies the email software that sent the email.
|
||
|
|
const wchar_t *mailer(void);
|
||
|
|
// Identifies the email software that sent the email.
|
||
|
|
void put_Mailer(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// The number of alternative bodies present in the email. An email that is not
|
||
|
|
// multipart/alternative will return 0 alternatives. An email that is
|
||
|
|
// multipart/alternative will return a number greater than or equal to 1.
|
||
|
|
int get_NumAlternatives(void);
|
||
|
|
|
||
|
|
// Returns the number of embedded emails. Some mail clients will embed an email
|
||
|
|
// that is to be forwarded into a new email as a message/rfc822 subpart of the MIME
|
||
|
|
// message structure. This property tells how many emails have been embedded. The
|
||
|
|
// original email can be retrieved by calling GetAttachedMessage.
|
||
|
|
int get_NumAttachedMessages(void);
|
||
|
|
|
||
|
|
// The number of attachments contained in the email.
|
||
|
|
//
|
||
|
|
// Note: If an email is downloaded from an IMAP server without attachments, then
|
||
|
|
// the number of attachments should be obtained by calling the IMAP object's
|
||
|
|
// GetMailNumAttach method. This property indicates the actual number of
|
||
|
|
// attachments already present within the email object.
|
||
|
|
//
|
||
|
|
int get_NumAttachments(void);
|
||
|
|
|
||
|
|
// The number of blind carbon-copy email recipients.
|
||
|
|
int get_NumBcc(void);
|
||
|
|
|
||
|
|
// The number of carbon-copy email recipients.
|
||
|
|
int get_NumCC(void);
|
||
|
|
|
||
|
|
// Returns the number of days old from the current system date/time. The email's
|
||
|
|
// date is obtained from the Date header field. If the Date header field is
|
||
|
|
// missing, or invalid, then -9999 is returned. A negative number may be returned
|
||
|
|
// if the Date header field contains a future date/time. (However, -9999 represents
|
||
|
|
// an error condition.)
|
||
|
|
int get_NumDaysOld(void);
|
||
|
|
|
||
|
|
// Returns the number of message/rfc822 parts contained within the multipart/digest
|
||
|
|
// enclosure. If no multipart/digest enclosure exists, then this property has the
|
||
|
|
// value of 0. The GetDigest method is called to get the Nth digest as an email
|
||
|
|
// object.
|
||
|
|
int get_NumDigests(void);
|
||
|
|
|
||
|
|
// The number of header fields. When accessing a header field by index, the 1st
|
||
|
|
// header field is at index 0, and the last is at NumHeaderFields-1. (Chilkat
|
||
|
|
// indexing is always 0-based.)
|
||
|
|
int get_NumHeaderFields(void);
|
||
|
|
|
||
|
|
// The number of related items present in this email. Related items are typically
|
||
|
|
// image files (JPEGs or GIFs) or style sheets (CSS files) that are included with
|
||
|
|
// HTML formatted messages with internal CID hyperlinks.
|
||
|
|
int get_NumRelatedItems(void);
|
||
|
|
|
||
|
|
// Returns the number of replacement patterns previously set by calling the
|
||
|
|
// SetReplacePattern method 1 or more times. If replacement patterns are set, the
|
||
|
|
// email bodies and header fields are modified by applying the search/replacement
|
||
|
|
// strings during the message sending process.
|
||
|
|
int get_NumReplacePatterns(void);
|
||
|
|
|
||
|
|
// (For multipart/report emails that have sub-parts with Content-Types such as
|
||
|
|
// message/feedback-report.) Any MIME sub-part within the email that has a
|
||
|
|
// Content-Type of message/* , but is not a message/rfc822 , is considered to be a
|
||
|
|
// report and is included in this count. (A message/rfc822 is considered an
|
||
|
|
// attached message and is handled by the NumAttachedMessages property and the
|
||
|
|
// GetAttachedMessage method.) Any MIME sub-part having a Content-Type equal to
|
||
|
|
// text/rfc822-headers is also considered to be a report . The GetReport method may
|
||
|
|
// be called to get the body content of each report contained within a
|
||
|
|
// multipart/report email.
|
||
|
|
int get_NumReports(void);
|
||
|
|
|
||
|
|
// The number of direct email recipients.
|
||
|
|
int get_NumTo(void);
|
||
|
|
|
||
|
|
// Selects the hash algorithm for use within OAEP padding when encrypting email
|
||
|
|
// using RSAES-OAEP. The valid choices are sha1 , sha256 , sha384 , sha512 ,
|
||
|
|
void get_OaepHash(CkString &str);
|
||
|
|
// Selects the hash algorithm for use within OAEP padding when encrypting email
|
||
|
|
// using RSAES-OAEP. The valid choices are sha1 , sha256 , sha384 , sha512 ,
|
||
|
|
const wchar_t *oaepHash(void);
|
||
|
|
// Selects the hash algorithm for use within OAEP padding when encrypting email
|
||
|
|
// using RSAES-OAEP. The valid choices are sha1 , sha256 , sha384 , sha512 ,
|
||
|
|
void put_OaepHash(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// Selects the MGF hash algorithm for use within OAEP padding when encrypting email
|
||
|
|
// using RSAES-OAEP. The valid choices are sha1 , sha256 , sha384 , sha512 ,
|
||
|
|
void get_OaepMgfHash(CkString &str);
|
||
|
|
// Selects the MGF hash algorithm for use within OAEP padding when encrypting email
|
||
|
|
// using RSAES-OAEP. The valid choices are sha1 , sha256 , sha384 , sha512 ,
|
||
|
|
const wchar_t *oaepMgfHash(void);
|
||
|
|
// Selects the MGF hash algorithm for use within OAEP padding when encrypting email
|
||
|
|
// using RSAES-OAEP. The valid choices are sha1 , sha256 , sha384 , sha512 ,
|
||
|
|
void put_OaepMgfHash(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// Selects the RSA encryption scheme when encrypting email. The default value is
|
||
|
|
// false, which selects RSAES_PKCS1-V1_5. If set to true, then RSAES_OAEP is
|
||
|
|
// used.
|
||
|
|
bool get_OaepPadding(void);
|
||
|
|
// Selects the RSA encryption scheme when encrypting email. The default value is
|
||
|
|
// false, which selects RSAES_PKCS1-V1_5. If set to true, then RSAES_OAEP is
|
||
|
|
// used.
|
||
|
|
void put_OaepPadding(bool newVal);
|
||
|
|
|
||
|
|
// When true (the default) the methods to save email attachments and related
|
||
|
|
// items will overwrite files if they already exist. If false, then the methods
|
||
|
|
// that save email attachments and related items will append a string of 4
|
||
|
|
// characters to create a unique filename if a file already exists. The filename of
|
||
|
|
// the attachment (or related item) within the email object is updated and can be
|
||
|
|
// retrieved by the program to determine the actual file(s) created.
|
||
|
|
bool get_OverwriteExisting(void);
|
||
|
|
// When true (the default) the methods to save email attachments and related
|
||
|
|
// items will overwrite files if they already exist. If false, then the methods
|
||
|
|
// that save email attachments and related items will append a string of 4
|
||
|
|
// characters to create a unique filename if a file already exists. The filename of
|
||
|
|
// the attachment (or related item) within the email object is updated and can be
|
||
|
|
// retrieved by the program to determine the actual file(s) created.
|
||
|
|
void put_OverwriteExisting(bool newVal);
|
||
|
|
|
||
|
|
// When an email is sent encrypted (using PKCS7 public-key encryption), this
|
||
|
|
// selects the underlying symmetric encryption algorithm. Possible values are: aes
|
||
|
|
// , aes-gcm , des , 3des , and rc2 . The default value is aes .
|
||
|
|
//
|
||
|
|
// Note: The aes-gcm option was added in Chilkat v10.0.0
|
||
|
|
//
|
||
|
|
void get_Pkcs7CryptAlg(CkString &str);
|
||
|
|
// When an email is sent encrypted (using PKCS7 public-key encryption), this
|
||
|
|
// selects the underlying symmetric encryption algorithm. Possible values are: aes
|
||
|
|
// , aes-gcm , des , 3des , and rc2 . The default value is aes .
|
||
|
|
//
|
||
|
|
// Note: The aes-gcm option was added in Chilkat v10.0.0
|
||
|
|
//
|
||
|
|
const wchar_t *pkcs7CryptAlg(void);
|
||
|
|
// When an email is sent encrypted (using PKCS7 public-key encryption), this
|
||
|
|
// selects the underlying symmetric encryption algorithm. Possible values are: aes
|
||
|
|
// , aes-gcm , des , 3des , and rc2 . The default value is aes .
|
||
|
|
//
|
||
|
|
// Note: The aes-gcm option was added in Chilkat v10.0.0
|
||
|
|
//
|
||
|
|
void put_Pkcs7CryptAlg(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// When the email is sent encrypted (using PKCS7 public-key encryption), this
|
||
|
|
// selects the key length of the underlying symmetric encryption algorithm. The
|
||
|
|
// possible values allowed depend on the Pkcs7CryptAlg property. For aes , the key
|
||
|
|
// length may be 128, 192, or 256. For 3des the key length must be 192. For des the
|
||
|
|
// key length must be 40. For rc2 the key length can be 40, 56, 64, or 128.
|
||
|
|
int get_Pkcs7KeyLength(void);
|
||
|
|
// When the email is sent encrypted (using PKCS7 public-key encryption), this
|
||
|
|
// selects the key length of the underlying symmetric encryption algorithm. The
|
||
|
|
// possible values allowed depend on the Pkcs7CryptAlg property. For aes , the key
|
||
|
|
// length may be 128, 192, or 256. For 3des the key length must be 192. For des the
|
||
|
|
// key length must be 40. For rc2 the key length can be 40, 56, 64, or 128.
|
||
|
|
void put_Pkcs7KeyLength(int newVal);
|
||
|
|
|
||
|
|
// Only applies when building an email with non-English characters where the
|
||
|
|
// charset is not explicitly set. The Chilkat email component will automatically
|
||
|
|
// choose a charset based on the languages found within an email (if the charset is
|
||
|
|
// not already specified within the MIME or explicitly specified by setting the
|
||
|
|
// Charset property). The default charset chosen for each language is:
|
||
|
|
//
|
||
|
|
// Chinese: gb2312
|
||
|
|
// Japanese: shift_JIS
|
||
|
|
// Korean: ks_c_5601-1987
|
||
|
|
// Thai: windows-874
|
||
|
|
// All others: iso-8859-*
|
||
|
|
//
|
||
|
|
//
|
||
|
|
// This allows for charsets such as iso-2022-jp to be chosen instead of the
|
||
|
|
// default. If the preferred charset does not apply to the situation, it is not
|
||
|
|
// used. For example, if the preferred charset is iso-2022-jp, but the email
|
||
|
|
// contains Greek characters, then the preferred charset is ignored.
|
||
|
|
//
|
||
|
|
void get_PreferredCharset(CkString &str);
|
||
|
|
// Only applies when building an email with non-English characters where the
|
||
|
|
// charset is not explicitly set. The Chilkat email component will automatically
|
||
|
|
// choose a charset based on the languages found within an email (if the charset is
|
||
|
|
// not already specified within the MIME or explicitly specified by setting the
|
||
|
|
// Charset property). The default charset chosen for each language is:
|
||
|
|
//
|
||
|
|
// Chinese: gb2312
|
||
|
|
// Japanese: shift_JIS
|
||
|
|
// Korean: ks_c_5601-1987
|
||
|
|
// Thai: windows-874
|
||
|
|
// All others: iso-8859-*
|
||
|
|
//
|
||
|
|
//
|
||
|
|
// This allows for charsets such as iso-2022-jp to be chosen instead of the
|
||
|
|
// default. If the preferred charset does not apply to the situation, it is not
|
||
|
|
// used. For example, if the preferred charset is iso-2022-jp, but the email
|
||
|
|
// contains Greek characters, then the preferred charset is ignored.
|
||
|
|
//
|
||
|
|
const wchar_t *preferredCharset(void);
|
||
|
|
// Only applies when building an email with non-English characters where the
|
||
|
|
// charset is not explicitly set. The Chilkat email component will automatically
|
||
|
|
// choose a charset based on the languages found within an email (if the charset is
|
||
|
|
// not already specified within the MIME or explicitly specified by setting the
|
||
|
|
// Charset property). The default charset chosen for each language is:
|
||
|
|
//
|
||
|
|
// Chinese: gb2312
|
||
|
|
// Japanese: shift_JIS
|
||
|
|
// Korean: ks_c_5601-1987
|
||
|
|
// Thai: windows-874
|
||
|
|
// All others: iso-8859-*
|
||
|
|
//
|
||
|
|
//
|
||
|
|
// This allows for charsets such as iso-2022-jp to be chosen instead of the
|
||
|
|
// default. If the preferred charset does not apply to the situation, it is not
|
||
|
|
// used. For example, if the preferred charset is iso-2022-jp, but the email
|
||
|
|
// contains Greek characters, then the preferred charset is ignored.
|
||
|
|
//
|
||
|
|
void put_PreferredCharset(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// If true, then header fields added via the AddHeaderField or AddHeaderField2
|
||
|
|
// methods are prepended to the top of the header as opposed to appended to the
|
||
|
|
// bottom. The default value is false.
|
||
|
|
bool get_PrependHeaders(void);
|
||
|
|
// If true, then header fields added via the AddHeaderField or AddHeaderField2
|
||
|
|
// methods are prepended to the top of the header as opposed to appended to the
|
||
|
|
// bottom. The default value is false.
|
||
|
|
void put_PrependHeaders(bool newVal);
|
||
|
|
|
||
|
|
// true if this email was originally received with encryption, otherwise false.
|
||
|
|
bool get_ReceivedEncrypted(void);
|
||
|
|
|
||
|
|
// true if this email was originally received with a digital signature, otherwise
|
||
|
|
// false.
|
||
|
|
bool get_ReceivedSigned(void);
|
||
|
|
|
||
|
|
// Sets the Reply-To header field to the specified email address such as
|
||
|
|
// john@example.com . The Reply-To header automatically defaults to the From email
|
||
|
|
// address. You would only set this property if you wish for the Reply-To email
|
||
|
|
// address to be different from the From address.
|
||
|
|
//
|
||
|
|
// There is usually only a single Reply-To email address. If multiple Reply-To
|
||
|
|
// addresses are needed, then set with a comma separated list of email addresses
|
||
|
|
// such as john@example.com, mary@somewhere.com .
|
||
|
|
//
|
||
|
|
void get_ReplyTo(CkString &str);
|
||
|
|
// Sets the Reply-To header field to the specified email address such as
|
||
|
|
// john@example.com . The Reply-To header automatically defaults to the From email
|
||
|
|
// address. You would only set this property if you wish for the Reply-To email
|
||
|
|
// address to be different from the From address.
|
||
|
|
//
|
||
|
|
// There is usually only a single Reply-To email address. If multiple Reply-To
|
||
|
|
// addresses are needed, then set with a comma separated list of email addresses
|
||
|
|
// such as john@example.com, mary@somewhere.com .
|
||
|
|
//
|
||
|
|
const wchar_t *replyTo(void);
|
||
|
|
// Sets the Reply-To header field to the specified email address such as
|
||
|
|
// john@example.com . The Reply-To header automatically defaults to the From email
|
||
|
|
// address. You would only set this property if you wish for the Reply-To email
|
||
|
|
// address to be different from the From address.
|
||
|
|
//
|
||
|
|
// There is usually only a single Reply-To email address. If multiple Reply-To
|
||
|
|
// addresses are needed, then set with a comma separated list of email addresses
|
||
|
|
// such as john@example.com, mary@somewhere.com .
|
||
|
|
//
|
||
|
|
void put_ReplyTo(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// Set to true if you want the email to request a return-receipt when received by
|
||
|
|
// the recipient. The default value is false.
|
||
|
|
//
|
||
|
|
// Setting this property causes the Disposition-Notification-To email header to be
|
||
|
|
// added when the email is sent.
|
||
|
|
//
|
||
|
|
bool get_ReturnReceipt(void);
|
||
|
|
// Set to true if you want the email to request a return-receipt when received by
|
||
|
|
// the recipient. The default value is false.
|
||
|
|
//
|
||
|
|
// Setting this property causes the Disposition-Notification-To email header to be
|
||
|
|
// added when the email is sent.
|
||
|
|
//
|
||
|
|
void put_ReturnReceipt(bool newVal);
|
||
|
|
|
||
|
|
// Set to true if this email should be sent encrypted.
|
||
|
|
bool get_SendEncrypted(void);
|
||
|
|
// Set to true if this email should be sent encrypted.
|
||
|
|
void put_SendEncrypted(bool newVal);
|
||
|
|
|
||
|
|
// Set to true if this email should be sent with a digital signature.
|
||
|
|
//
|
||
|
|
// Note: Please be aware of the Apple Mail bug explained in the web page at the
|
||
|
|
// link below.
|
||
|
|
//
|
||
|
|
bool get_SendSigned(void);
|
||
|
|
// Set to true if this email should be sent with a digital signature.
|
||
|
|
//
|
||
|
|
// Note: Please be aware of the Apple Mail bug explained in the web page at the
|
||
|
|
// link below.
|
||
|
|
//
|
||
|
|
void put_SendSigned(bool newVal);
|
||
|
|
|
||
|
|
// true if the email was received with one or more digital signatures, and if all
|
||
|
|
// the signatures were validated indicating that the email was not altered.
|
||
|
|
// Otherwise this property is set to false. (This property is only meaningful
|
||
|
|
// when the ReceivedSigned property is equal to true.)
|
||
|
|
bool get_SignaturesValid(void);
|
||
|
|
|
||
|
|
// If the email was received digitally signed, this property contains the fields of
|
||
|
|
// the cert's SubjectDN.
|
||
|
|
//
|
||
|
|
// For example: US, 60187, Illinois, Wheaton, 1719 E Forest Ave, Chilkat Software,
|
||
|
|
// Inc. , Chilkat Software, Inc.
|
||
|
|
//
|
||
|
|
// It is like the DN (Distinguished Name), but without the AttrName= before each
|
||
|
|
// attribute.
|
||
|
|
//
|
||
|
|
void get_SignedBy(CkString &str);
|
||
|
|
// If the email was received digitally signed, this property contains the fields of
|
||
|
|
// the cert's SubjectDN.
|
||
|
|
//
|
||
|
|
// For example: US, 60187, Illinois, Wheaton, 1719 E Forest Ave, Chilkat Software,
|
||
|
|
// Inc. , Chilkat Software, Inc.
|
||
|
|
//
|
||
|
|
// It is like the DN (Distinguished Name), but without the AttrName= before each
|
||
|
|
// attribute.
|
||
|
|
//
|
||
|
|
const wchar_t *signedBy(void);
|
||
|
|
|
||
|
|
// Selects the signature algorithm to be used when sending signed (PKCS7) email.
|
||
|
|
// The default value is PKCS1-v1_5 . This can be set to RSASSA-PSS (or simply pss )
|
||
|
|
// to use the RSASSA-PSS signature scheme.
|
||
|
|
//
|
||
|
|
// Note: This property only applies when signing with an RSA private key. It does
|
||
|
|
// not apply for ECC or DSA private keys.
|
||
|
|
//
|
||
|
|
void get_SigningAlg(CkString &str);
|
||
|
|
// Selects the signature algorithm to be used when sending signed (PKCS7) email.
|
||
|
|
// The default value is PKCS1-v1_5 . This can be set to RSASSA-PSS (or simply pss )
|
||
|
|
// to use the RSASSA-PSS signature scheme.
|
||
|
|
//
|
||
|
|
// Note: This property only applies when signing with an RSA private key. It does
|
||
|
|
// not apply for ECC or DSA private keys.
|
||
|
|
//
|
||
|
|
const wchar_t *signingAlg(void);
|
||
|
|
// Selects the signature algorithm to be used when sending signed (PKCS7) email.
|
||
|
|
// The default value is PKCS1-v1_5 . This can be set to RSASSA-PSS (or simply pss )
|
||
|
|
// to use the RSASSA-PSS signature scheme.
|
||
|
|
//
|
||
|
|
// Note: This property only applies when signing with an RSA private key. It does
|
||
|
|
// not apply for ECC or DSA private keys.
|
||
|
|
//
|
||
|
|
void put_SigningAlg(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// Selects the underlying hash algorithm used when sending signed (PKCS7) email.
|
||
|
|
// Possible values are sha1 , sha256 , sha384 , sha512 , md5 , and md2 .
|
||
|
|
void get_SigningHashAlg(CkString &str);
|
||
|
|
// Selects the underlying hash algorithm used when sending signed (PKCS7) email.
|
||
|
|
// Possible values are sha1 , sha256 , sha384 , sha512 , md5 , and md2 .
|
||
|
|
const wchar_t *signingHashAlg(void);
|
||
|
|
// Selects the underlying hash algorithm used when sending signed (PKCS7) email.
|
||
|
|
// Possible values are sha1 , sha256 , sha384 , sha512 , md5 , and md2 .
|
||
|
|
void put_SigningHashAlg(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// The size in bytes of the email, including all parts and attachments.
|
||
|
|
//
|
||
|
|
// Note: This property is only valid if the full email was downloaded. If only the
|
||
|
|
// header was downloaded, then this property will contain the size of just the
|
||
|
|
// header.
|
||
|
|
//
|
||
|
|
int get_Size(void);
|
||
|
|
|
||
|
|
// The email subject.
|
||
|
|
void get_Subject(CkString &str);
|
||
|
|
// The email subject.
|
||
|
|
const wchar_t *subject(void);
|
||
|
|
// The email subject.
|
||
|
|
void put_Subject(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// This is the unique ID assigned by the POP3 server. Emails can be retrieved or
|
||
|
|
// deleted from the POP3 server via the UIDL. The header field for this property is
|
||
|
|
// X-UIDL .
|
||
|
|
//
|
||
|
|
// Important: Emails downloaded via the IMAP protocol do not have UIDL's. UIDL's
|
||
|
|
// are specific to the POP3 protocol. IMAP servers use UID's (notice the spelling
|
||
|
|
// difference -- UIDL vs. UID ). An email downloaded via the Chilkat IMAP component
|
||
|
|
// will contain a ckx-imap-uid header field that holds either an IMAP UID or
|
||
|
|
// sequence number. If the email was downloaded (from IMAP) using a UID,then
|
||
|
|
// ckx-imap-uid contains a UID. If the email was downloaded by sequence number,
|
||
|
|
// then it contains a sequence number (not unique and can change with a new
|
||
|
|
// session). The ckx-imap-isUid header, which can have the value YES or NO , tells
|
||
|
|
// what ckx-imap-uid contains.
|
||
|
|
//
|
||
|
|
void get_Uidl(CkString &str);
|
||
|
|
// This is the unique ID assigned by the POP3 server. Emails can be retrieved or
|
||
|
|
// deleted from the POP3 server via the UIDL. The header field for this property is
|
||
|
|
// X-UIDL .
|
||
|
|
//
|
||
|
|
// Important: Emails downloaded via the IMAP protocol do not have UIDL's. UIDL's
|
||
|
|
// are specific to the POP3 protocol. IMAP servers use UID's (notice the spelling
|
||
|
|
// difference -- UIDL vs. UID ). An email downloaded via the Chilkat IMAP component
|
||
|
|
// will contain a ckx-imap-uid header field that holds either an IMAP UID or
|
||
|
|
// sequence number. If the email was downloaded (from IMAP) using a UID,then
|
||
|
|
// ckx-imap-uid contains a UID. If the email was downloaded by sequence number,
|
||
|
|
// then it contains a sequence number (not unique and can change with a new
|
||
|
|
// session). The ckx-imap-isUid header, which can have the value YES or NO , tells
|
||
|
|
// what ckx-imap-uid contains.
|
||
|
|
//
|
||
|
|
const wchar_t *uidl(void);
|
||
|
|
|
||
|
|
// This is a catch-all property to be used for uncommon needs. This property
|
||
|
|
// defaults to the empty string, and should typically remain empty.
|
||
|
|
//
|
||
|
|
// * NoBccHeader - (added in v11.0.0) Do not add the Bcc MIME header for BCC
|
||
|
|
// email addresses. Note: The NoBccHeader keyword must be present before
|
||
|
|
// calling AddBcc or AddMultipleBcc
|
||
|
|
// * NO_FORMAT_FLOWED - Don't automatically add format=flowed to any
|
||
|
|
// Content-Type header.
|
||
|
|
//
|
||
|
|
//
|
||
|
|
// References:
|
||
|
|
// 1: #AddBcc
|
||
|
|
// 2: #AddMultipleBcc
|
||
|
|
void get_UncommonOptions(CkString &str);
|
||
|
|
// This is a catch-all property to be used for uncommon needs. This property
|
||
|
|
// defaults to the empty string, and should typically remain empty.
|
||
|
|
//
|
||
|
|
// * NoBccHeader - (added in v11.0.0) Do not add the Bcc MIME header for BCC
|
||
|
|
// email addresses. Note: The NoBccHeader keyword must be present before
|
||
|
|
// calling AddBcc or AddMultipleBcc
|
||
|
|
// * NO_FORMAT_FLOWED - Don't automatically add format=flowed to any
|
||
|
|
// Content-Type header.
|
||
|
|
//
|
||
|
|
//
|
||
|
|
// References:
|
||
|
|
// 1: #AddBcc
|
||
|
|
// 2: #AddMultipleBcc
|
||
|
|
const wchar_t *uncommonOptions(void);
|
||
|
|
// This is a catch-all property to be used for uncommon needs. This property
|
||
|
|
// defaults to the empty string, and should typically remain empty.
|
||
|
|
//
|
||
|
|
// * NoBccHeader - (added in v11.0.0) Do not add the Bcc MIME header for BCC
|
||
|
|
// email addresses. Note: The NoBccHeader keyword must be present before
|
||
|
|
// calling AddBcc or AddMultipleBcc
|
||
|
|
// * NO_FORMAT_FLOWED - Don't automatically add format=flowed to any
|
||
|
|
// Content-Type header.
|
||
|
|
//
|
||
|
|
//
|
||
|
|
// References:
|
||
|
|
// 1: #AddBcc
|
||
|
|
// 2: #AddMultipleBcc
|
||
|
|
void put_UncommonOptions(const wchar_t *newVal);
|
||
|
|
|
||
|
|
// Applies to the UnpackHtml method. If true, then relative paths are used within
|
||
|
|
// the HTML for the links to the related files (images and style sheets) that were
|
||
|
|
// unpacked to the filesystem. Otherwise absolute paths are used. The default value
|
||
|
|
// is true.
|
||
|
|
bool get_UnpackUseRelPaths(void);
|
||
|
|
// Applies to the UnpackHtml method. If true, then relative paths are used within
|
||
|
|
// the HTML for the links to the related files (images and style sheets) that were
|
||
|
|
// unpacked to the filesystem. Otherwise absolute paths are used. The default value
|
||
|
|
// is true.
|
||
|
|
void put_UnpackUseRelPaths(bool newVal);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// ----------------------
|
||
|
|
// Methods
|
||
|
|
// ----------------------
|
||
|
|
// Adds an attachment using the contents of a BinData object. If contentType is empty,
|
||
|
|
// then the content-type will be inferred from the filename extension.
|
||
|
|
bool AddAttachmentBd(const wchar_t *filename, CkBinDataW &binData, const wchar_t *contentType);
|
||
|
|
|
||
|
|
// Adds or replaces a MIME header field in one of the email attachments. If the
|
||
|
|
// header field does not exist, it is added. Otherwise it is replaced.
|
||
|
|
void AddAttachmentHeader(int index, const wchar_t *fieldName, const wchar_t *fieldValue);
|
||
|
|
|
||
|
|
// Adds a recipient to the blind carbon-copy (BCC) list. emailAddress is required; friendlyName is
|
||
|
|
// optional. Call this method separately for each BCC recipient.
|
||
|
|
//
|
||
|
|
// Note: Before v11.0.0, BCC addresses are not added to the MIME header. After
|
||
|
|
// v11.0.0, BCC addresses are included in the MIME header. Most email servers
|
||
|
|
// remove the BCC header before delivering the message to regular recipients. The
|
||
|
|
// NoBccHeader keyword can be used in UncommonOptions to prevent BCC email
|
||
|
|
// addresses in the MIME passed to the SMTP server. If your application specifies
|
||
|
|
// NoBccHeader , do so before adding BCC addresses.
|
||
|
|
//
|
||
|
|
//
|
||
|
|
// References:
|
||
|
|
// 1: #UncommonOptions
|
||
|
|
bool AddBcc(const wchar_t *friendlyName, const wchar_t *emailAddress);
|
||
|
|
|
||
|
|
// Adds a recipient to the carbon-copy list. emailAddress is required, but friendlyName may be
|
||
|
|
// empty.
|
||
|
|
//
|
||
|
|
// To add multiple CC recipients, call this method once per recipient.
|
||
|
|
//
|
||
|
|
bool AddCC(const wchar_t *friendlyName, const wchar_t *emailAddress);
|
||
|
|
|
||
|
|
// Adds an attachment directly from data in memory to the email.
|
||
|
|
bool AddDataAttachment(const wchar_t *fileName, CkByteData &content);
|
||
|
|
|
||
|
|
// Adds an attachment to an email from in-memory data. Same as AddDataAttachment
|
||
|
|
// but allows the content-type to be specified.
|
||
|
|
bool AddDataAttachment2(const wchar_t *fileName, CkByteData &content, const wchar_t *contentType);
|
||
|
|
|
||
|
|
// Allows for certificates to be explicitly specified for sending encrypted email
|
||
|
|
// to one or more recipients. Call this method once per certificate to be used. The
|
||
|
|
// ClearEncryptCerts method may be called to clear the list of explicitly-specified
|
||
|
|
// certificates.
|
||
|
|
//
|
||
|
|
// Note: It is possible to send encrypted email without explicitly specifying the
|
||
|
|
// certificates. On Windows computers, the registry-based Current-User and
|
||
|
|
// Local-Machine certificate stores are automatically searched for certs matching
|
||
|
|
// each of the recipients (To, CC, and BCC recipients).
|
||
|
|
//
|
||
|
|
// Note: The SetEncryptCert method is equivalent to calling ClearEncryptCerts
|
||
|
|
// followed by AddEncryptCert.
|
||
|
|
//
|
||
|
|
bool AddEncryptCert(CkCertW &cert);
|
||
|
|
|
||
|
|
// Adds a file as an attachment to the email. Returns the MIME content-type of the
|
||
|
|
// attachment, which is inferred based on the filename extension.
|
||
|
|
bool AddFileAttachment(const wchar_t *path, CkString &outStrContentType);
|
||
|
|
// Adds a file as an attachment to the email. Returns the MIME content-type of the
|
||
|
|
// attachment, which is inferred based on the filename extension.
|
||
|
|
const wchar_t *addFileAttachment(const wchar_t *path);
|
||
|
|
|
||
|
|
// Same as AddFileAttachment, but the content type can be explicitly specified.
|
||
|
|
bool AddFileAttachment2(const wchar_t *path, const wchar_t *contentType);
|
||
|
|
|
||
|
|
// Any standard or non-standard (custom) header field can be added to the email
|
||
|
|
// with this method. One interesting feature is that all header fields whose name
|
||
|
|
// begins with CKX- will not be included in the header when an email is sent. These
|
||
|
|
// fields will be included when saved to or loaded from XML. This makes it easy to
|
||
|
|
// include persistent meta-data with an email which your programs can use in any
|
||
|
|
// way it chooses.
|
||
|
|
//
|
||
|
|
// Important: This method will replace an already-existing header field. To allow
|
||
|
|
// for adding duplicate header fields, call AddHeaderField2 (see below).
|
||
|
|
//
|
||
|
|
void AddHeaderField(const wchar_t *fieldName, const wchar_t *fieldValue);
|
||
|
|
|
||
|
|
// This method is the same as AddHeaderField, except that if the header field
|
||
|
|
// already exists, it is not replaced. A duplicate header will be added.
|
||
|
|
void AddHeaderField2(const wchar_t *fieldName, const wchar_t *fieldValue);
|
||
|
|
|
||
|
|
// Sets the HTML body of the email. Use this method if there will be multiple
|
||
|
|
// versions of the body, but in different formats, such as HTML and plain text.
|
||
|
|
// Otherwise, set the body by calling the SetHtmlBody method.
|
||
|
|
bool AddHtmlAlternativeBody(const wchar_t *body);
|
||
|
|
|
||
|
|
// Adds an iCalendar (text/calendar) alternative body to the email. The icalContent
|
||
|
|
// contains the content of the iCalendar data. A sample is shown here:BEGIN:VCALENDAR
|
||
|
|
// VERSION:2.0
|
||
|
|
// PRODID:-//hacksw/handcal//NONSGML v1.0//EN
|
||
|
|
// BEGIN:VEVENT
|
||
|
|
// UID:uid1@example.com
|
||
|
|
// DTSTAMP:19970714T170000Z
|
||
|
|
// ORGANIZER;CN=John Doe:MAILTO:john.doe@example.com
|
||
|
|
// DTSTART:19970714T170000Z
|
||
|
|
// DTEND:19970715T035959Z
|
||
|
|
// SUMMARY:Bastille Day Party
|
||
|
|
// END:VEVENT
|
||
|
|
// END:VCALENDAR
|
||
|
|
// The methodName is the method attribute used in the Content-Type header field in the
|
||
|
|
// alternative body. For example, if set to REQUEST , then the alternative body's
|
||
|
|
// header would look like this:Content-Type: text/calendar; method=REQUEST
|
||
|
|
// Content-Transfer-Encoding: base64
|
||
|
|
bool AddiCalendarAlternativeBody(const wchar_t *icalContent, const wchar_t *methodName);
|
||
|
|
|
||
|
|
// Adds multiple recipients to the blind carbon-copy list from a comma-separated
|
||
|
|
// string of email addresses. Returns true if successful.
|
||
|
|
//
|
||
|
|
// Note: Before v11.0.0, BCC addresses are not added to the MIME header. After
|
||
|
|
// v11.0.0, BCC addresses are included in the MIME header. Most email servers
|
||
|
|
// remove the BCC header before delivering the message to regular recipients. The
|
||
|
|
// NoBccHeader keyword can be used in UncommonOptions to prevent BCC email
|
||
|
|
// addresses in the MIME passed to the SMTP server. If your application specifies
|
||
|
|
// NoBccHeader , do so before adding BCC addresses.
|
||
|
|
//
|
||
|
|
//
|
||
|
|
// References:
|
||
|
|
// 1: #UncommonOptions
|
||
|
|
bool AddMultipleBcc(const wchar_t *commaSeparatedAddresses);
|
||
|
|
|
||
|
|
// Adds multiple recipients to the carbon-copy list. The parameter is a string
|
||
|
|
// containing a comma separated list of full email addresses. Returns True if
|
||
|
|
// successful.
|
||
|
|
bool AddMultipleCC(const wchar_t *commaSeparatedAddresses);
|
||
|
|
|
||
|
|
// Adds multiple recipients to the to list. The parameter is a string containing a
|
||
|
|
// comma separated list of full email addresses. Returns True if successful.
|
||
|
|
bool AddMultipleTo(const wchar_t *commaSeparatedAddresses);
|
||
|
|
|
||
|
|
// Adds a PFX file to the object's list of sources for locating certificates and
|
||
|
|
// private keys during decryption or signing. To add multiple PFX sources, call
|
||
|
|
// this method for each file. bd should contain the bytes of a PFX file (also
|
||
|
|
// known as PKCS12 or .p12). The password is the password for the PFX.
|
||
|
|
bool AddPfxSourceBd(CkBinDataW &bd, const wchar_t *password);
|
||
|
|
|
||
|
|
// Adds a PFX to the object's internal list of sources to be searched for
|
||
|
|
// certificates and private keys when decrypting. Multiple PFX sources can be added
|
||
|
|
// by calling this method once for each. (On the Windows operating system, the
|
||
|
|
// registry-based certificate stores are also automatically searched, so it is
|
||
|
|
// commonly not required to explicitly add PFX sources.)
|
||
|
|
//
|
||
|
|
// The pfxBytes contains the bytes of a PFX file (also known as PKCS12 or .p12).
|
||
|
|
//
|
||
|
|
bool AddPfxSourceData(CkByteData &pfxBytes, const wchar_t *pfxPassword);
|
||
|
|
|
||
|
|
// Adds a PFX file to the object's internal list of sources to be searched for
|
||
|
|
// certificates and private keys when decrypting. Multiple PFX files can be added
|
||
|
|
// by calling this method once for each. (On the Windows operating system, the
|
||
|
|
// registry-based certificate stores are also automatically searched, so it is
|
||
|
|
// commonly not required to explicitly add PFX sources.)
|
||
|
|
//
|
||
|
|
// The pfxFilePath contains the bytes of a PFX file (also known as PKCS12 or .p12).
|
||
|
|
//
|
||
|
|
bool AddPfxSourceFile(const wchar_t *pfxFilePath, const wchar_t *pfxPassword);
|
||
|
|
|
||
|
|
// Sets the plain-text body of the email. Use this method if there will be multiple
|
||
|
|
// versions of the body, but in different formats, such as HTML and plain text.
|
||
|
|
// Otherwise, simply set the Body property.
|
||
|
|
bool AddPlainTextAlternativeBody(const wchar_t *body);
|
||
|
|
|
||
|
|
// Adds a related item using the contents of a BinData object. Returns the
|
||
|
|
// Content-ID for the newly added relted item.
|
||
|
|
bool AddRelatedBd(const wchar_t *filename, CkBinDataW &binData, CkString &outStr);
|
||
|
|
// Adds a related item using the contents of a BinData object. Returns the
|
||
|
|
// Content-ID for the newly added relted item.
|
||
|
|
const wchar_t *addRelatedBd(const wchar_t *filename, CkBinDataW &binData);
|
||
|
|
|
||
|
|
// Adds a related item using the contents of a BinData object. The fileNameInHtml should be
|
||
|
|
// set to the filename/path/url used in the corresponding HTML IMG tag's src
|
||
|
|
// attribute.
|
||
|
|
bool AddRelatedBd2(CkBinDataW &binData, const wchar_t *fileNameInHtml);
|
||
|
|
|
||
|
|
// Adds the memory data as a related item to the email and returns the Content-ID.
|
||
|
|
// Emails formatted in HTML can include images with this call and internally
|
||
|
|
// reference the image through a cid hyperlink. (Chilkat Email.NET fully supports
|
||
|
|
// the MHTML standard.)
|
||
|
|
bool AddRelatedData(const wchar_t *fileName, CkByteData &inData, CkString &outStr);
|
||
|
|
// Adds the memory data as a related item to the email and returns the Content-ID.
|
||
|
|
// Emails formatted in HTML can include images with this call and internally
|
||
|
|
// reference the image through a cid hyperlink. (Chilkat Email.NET fully supports
|
||
|
|
// the MHTML standard.)
|
||
|
|
const wchar_t *addRelatedData(const wchar_t *fileName, CkByteData &inData);
|
||
|
|
|
||
|
|
// Adds a related item to the email from in-memory byte data. Related items are
|
||
|
|
// things such as images and style sheets that are embedded within an HTML email.
|
||
|
|
// They are not considered attachments because their sole purpose is to participate
|
||
|
|
// in the display of the HTML. This method differs from AddRelatedData in that it
|
||
|
|
// does not use or return a Content-ID. The filename argument should be set to the
|
||
|
|
// filename used in the HTML img tag's src attribute (if it's an image), or the URL
|
||
|
|
// referenced in an HTML link tag for a stylesheet.
|
||
|
|
void AddRelatedData2(CkByteData &inData, const wchar_t *fileNameInHtml);
|
||
|
|
|
||
|
|
// Adds the contents of a file to the email and returns the Content-ID. Emails
|
||
|
|
// formatted in HTML can include images with this call and internally reference the
|
||
|
|
// image through a cid hyperlink. (Chilkat Email.NET fully supports the MHTML
|
||
|
|
// standard.)
|
||
|
|
bool AddRelatedFile(const wchar_t *path, CkString &outStrContentID);
|
||
|
|
// Adds the contents of a file to the email and returns the Content-ID. Emails
|
||
|
|
// formatted in HTML can include images with this call and internally reference the
|
||
|
|
// image through a cid hyperlink. (Chilkat Email.NET fully supports the MHTML
|
||
|
|
// standard.)
|
||
|
|
const wchar_t *addRelatedFile(const wchar_t *path);
|
||
|
|
|
||
|
|
// Adds a related item to the email from a file. Related items are things such as
|
||
|
|
// images and style sheets that are embedded within an HTML email. They are not
|
||
|
|
// considered attachments because their sole purpose is to participate in the
|
||
|
|
// display of the HTML. This method differs from AddRelatedFile in that it does not
|
||
|
|
// use or return a Content-ID. The filenameInHtml argument should be set to the filename used
|
||
|
|
// in the HTML img tag's src attribute (if it's an image), or the URL referenced in
|
||
|
|
// an HTML link tag for a stylesheet. The filenameOnDisk is the path in the local filesystem
|
||
|
|
// of the file to be added.
|
||
|
|
//
|
||
|
|
// Note: Outlook.com will not properly display embedded HTMl images when the filenameInHtml
|
||
|
|
// includes a path part. Apparently, Outlook.com is only capable of correctly
|
||
|
|
// displaying images when the filenameInHtml is a only a filename. Other email clients, such
|
||
|
|
// as Mozilla Thunderbird, have no trouble when the filenameInHtml includes a path part.
|
||
|
|
//
|
||
|
|
bool AddRelatedFile2(const wchar_t *filenameOnDisk, const wchar_t *filenameInHtml);
|
||
|
|
|
||
|
|
// Adds or replaces a MIME header field in one of the email's related items. If the
|
||
|
|
// header field does not exist, it is added. Otherwise it is replaced.
|
||
|
|
void AddRelatedHeader(int index, const wchar_t *fieldName, const wchar_t *fieldValue);
|
||
|
|
|
||
|
|
// Adds a related item to the email. A related item is typically an image or style
|
||
|
|
// sheet referenced by an HTML tag within the HTML email body. The contents of the
|
||
|
|
// related item are passed str. nameInHtml specifies the filename that should be used
|
||
|
|
// within the HTML, and not an actual filename on the local filesystem. charset
|
||
|
|
// specifies the charset that should be used for the text content of the related
|
||
|
|
// item. Returns the content-ID generated for the added item.
|
||
|
|
bool AddRelatedString(const wchar_t *nameInHtml, const wchar_t *str, const wchar_t *charset, CkString &outCid);
|
||
|
|
// Adds a related item to the email. A related item is typically an image or style
|
||
|
|
// sheet referenced by an HTML tag within the HTML email body. The contents of the
|
||
|
|
// related item are passed str. nameInHtml specifies the filename that should be used
|
||
|
|
// within the HTML, and not an actual filename on the local filesystem. charset
|
||
|
|
// specifies the charset that should be used for the text content of the related
|
||
|
|
// item. Returns the content-ID generated for the added item.
|
||
|
|
const wchar_t *addRelatedString(const wchar_t *nameInHtml, const wchar_t *str, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Adds a related item to the email from an in-memory string. Related items are
|
||
|
|
// things such as images and style sheets that are embedded within an HTML email.
|
||
|
|
// They are not considered attachments because their sole purpose is to participate
|
||
|
|
// in the display of the HTML. The filenameInHtml argument should be set to the
|
||
|
|
// filename used in the HTML img tag's src attribute (if it's an image), or the URL
|
||
|
|
// referenced in an HTML link tag for a stylesheet. The charset argument indicates
|
||
|
|
// that the content should first be converted to the specified charset prior to
|
||
|
|
// adding to the email. It should hava a value such as iso-8859-1 , utf-8 ,
|
||
|
|
// Shift_JIS , etc.
|
||
|
|
void AddRelatedString2(const wchar_t *fileNameInHtml, const wchar_t *content, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Adds an attachment directly from a string in memory to the email.
|
||
|
|
bool AddStringAttachment(const wchar_t *path, const wchar_t *content);
|
||
|
|
|
||
|
|
// Adds an attachment to an email. The path specifies the filename to be used for
|
||
|
|
// the attachment and is not an actual filename existing on the local filesystem.
|
||
|
|
// The content contains the text data for the attachment. The string will be converted
|
||
|
|
// to the charset specified in charset before being added to the email.
|
||
|
|
//
|
||
|
|
// Note: Beginning in v9.5.0.48, the charset may be prepended with bom- or no-bom- to
|
||
|
|
// include or exclude the BOM (preamble) for charsets such as utf-16 or utf-8. For
|
||
|
|
// example: no-bom-utf-8 or bom-utf-8 .
|
||
|
|
//
|
||
|
|
bool AddStringAttachment2(const wchar_t *path, const wchar_t *content, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Adds a recipient to the to list. emailAddress is required, but friendlyName may be empty. Emails
|
||
|
|
// that have no To recipients will be sent to _LT_undisclosed-recipients_GT_.
|
||
|
|
//
|
||
|
|
// To add multiple recipients, call this method once per TO recipient.
|
||
|
|
//
|
||
|
|
bool AddTo(const wchar_t *friendlyName, const wchar_t *emailAddress);
|
||
|
|
|
||
|
|
// Decrypts and restores an email message that was previously encrypted using
|
||
|
|
// AesEncrypt. The password must match the password used for encryption.
|
||
|
|
bool AesDecrypt(const wchar_t *password);
|
||
|
|
|
||
|
|
// Encrypts the email body, all alternative bodies, all message sub-parts and
|
||
|
|
// attachments using 128-bit AES CBC encryption. Decrypting is achieved by calling
|
||
|
|
// AesDecrypt with the same password. The AesEncrypt/Decrypt methods use symmetric
|
||
|
|
// password-based AES encryption and greatly simplify sending and receiving
|
||
|
|
// encrypted emails because certificates and private keys are not used. However,
|
||
|
|
// the sending and receiving applications must both use Chilkat, and the password
|
||
|
|
// must be pre-known on both ends.
|
||
|
|
bool AesEncrypt(const wchar_t *password);
|
||
|
|
|
||
|
|
// Appends a string to the plain-text body.
|
||
|
|
void AppendToBody(const wchar_t *str);
|
||
|
|
|
||
|
|
// Sometimes emails created by other software or systems are not formatted
|
||
|
|
// according to typical conventions. This method provides a means to automatically
|
||
|
|
// fix certain problems.
|
||
|
|
//
|
||
|
|
// The fixups set to a comma-separated list of keywords that identify the fixups to
|
||
|
|
// be applied. At the moment, there is only one fixup defined ( FixRelated ) as
|
||
|
|
// described here:
|
||
|
|
// * FixRelated: Fixes the email so that HTML related items (images for
|
||
|
|
// example) are properly located in the email MIME structure. This prevents them
|
||
|
|
// from being seen as attachments.
|
||
|
|
//
|
||
|
|
bool ApplyFixups(const wchar_t *fixups);
|
||
|
|
|
||
|
|
// Please see the examples at the following pages for detailed information:
|
||
|
|
bool AspUnpack(const wchar_t *prefix, const wchar_t *saveDir, const wchar_t *urlPath, bool cleanFiles);
|
||
|
|
|
||
|
|
// Please see the examples at the following pages for detailed information:
|
||
|
|
bool AspUnpack2(const wchar_t *prefix, const wchar_t *saveDir, const wchar_t *urlPath, bool cleanFiles, CkByteData &outHtml);
|
||
|
|
|
||
|
|
// Attaches copy of the email to this email object. The attached email will be
|
||
|
|
// encapsulated in an message/rfc822 sub-part.
|
||
|
|
bool AttachEmail(CkEmailW &email);
|
||
|
|
|
||
|
|
// Attaches a MIME message to the email object. The attached MIME will be
|
||
|
|
// encapsulated in an message/rfc822 sub-part.
|
||
|
|
bool AttachMessage(CkByteData &mimeBytes);
|
||
|
|
|
||
|
|
// Takes a byte array of multibyte (non-Unicode) data and returns a Unicode
|
||
|
|
// B-Encoded string.
|
||
|
|
bool BEncodeBytes(CkByteData &inData, const wchar_t *charset, CkString &outEncodedStr);
|
||
|
|
// Takes a byte array of multibyte (non-Unicode) data and returns a Unicode
|
||
|
|
// B-Encoded string.
|
||
|
|
const wchar_t *bEncodeBytes(CkByteData &inData, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Takes a Unicode string, converts it to the charset specified in the 2nd
|
||
|
|
// parameter, B-Encodes the converted multibyte data, and returns the encoded
|
||
|
|
// Unicode string.
|
||
|
|
bool BEncodeString(const wchar_t *str, const wchar_t *charset, CkString &outEncodedStr);
|
||
|
|
// Takes a Unicode string, converts it to the charset specified in the 2nd
|
||
|
|
// parameter, B-Encodes the converted multibyte data, and returns the encoded
|
||
|
|
// Unicode string.
|
||
|
|
const wchar_t *bEncodeString(const wchar_t *str, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Clears the email object of all information to the state as if the object was
|
||
|
|
// just created, which will have default headers such as Mime-Version, Date,
|
||
|
|
// Message-ID, Content-Type, Content-Transfer-Encoding, and X-Priority.
|
||
|
|
void Clear(void);
|
||
|
|
|
||
|
|
// Clears the list of blind carbon-copy recipients.
|
||
|
|
void ClearBcc(void);
|
||
|
|
|
||
|
|
// Clears the list of carbon-copy recipients.
|
||
|
|
void ClearCC(void);
|
||
|
|
|
||
|
|
// Clears the internal list of explicitly specified certificates to be used for
|
||
|
|
// this encrypted email.
|
||
|
|
void ClearEncryptCerts(void);
|
||
|
|
|
||
|
|
// Clears the list of to recipients.
|
||
|
|
void ClearTo(void);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications should instead call MakeCopy .
|
||
|
|
//
|
||
|
|
// Creates and returns an identical copy of the Email object.
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkEmailW *Clone(void);
|
||
|
|
|
||
|
|
// Computes a global unique key for the email. The key is created by a digest-MD5
|
||
|
|
// hash of the concatenation of the following:messageID + CRLF + subject + CRLF + from + CRLF + date + CRLF + recipientAddrs
|
||
|
|
//
|
||
|
|
// messageID contains the contents of the Message-ID header field.
|
||
|
|
// subject contains the contents of the Subject header field, trimmed of whitespace from both ends,
|
||
|
|
// where TAB chars are converted to SPACE chars, and internal whitespace is trimmed so that
|
||
|
|
// no more than one SPACE char in a row exists.
|
||
|
|
// from contains the lowercase FROM header email address.
|
||
|
|
// date contains the contents of the DATE header field.
|
||
|
|
// toAddrs contains lowercase TO and CC recipient email addresses, comma separated, with duplicates removed, and sorted
|
||
|
|
// in ascending order. The BCC addresses are NOT included.
|
||
|
|
//
|
||
|
|
// (After calling this method, the LastErrorText property can be examined to see the string that was hashed.)
|
||
|
|
// The 16-byte MD5 hash is returned as an encoded string. The encoding determines the
|
||
|
|
// encoding: base64, hex, url, etc. If bFold is true, then the 16-byte MD5 hash is
|
||
|
|
// folded to 8 bytes with an XOR to produce a shorter key.
|
||
|
|
bool ComputeGlobalKey2(const wchar_t *encoding, bool bFold, CkString &outStr);
|
||
|
|
// Computes a global unique key for the email. The key is created by a digest-MD5
|
||
|
|
// hash of the concatenation of the following:messageID + CRLF + subject + CRLF + from + CRLF + date + CRLF + recipientAddrs
|
||
|
|
//
|
||
|
|
// messageID contains the contents of the Message-ID header field.
|
||
|
|
// subject contains the contents of the Subject header field, trimmed of whitespace from both ends,
|
||
|
|
// where TAB chars are converted to SPACE chars, and internal whitespace is trimmed so that
|
||
|
|
// no more than one SPACE char in a row exists.
|
||
|
|
// from contains the lowercase FROM header email address.
|
||
|
|
// date contains the contents of the DATE header field.
|
||
|
|
// toAddrs contains lowercase TO and CC recipient email addresses, comma separated, with duplicates removed, and sorted
|
||
|
|
// in ascending order. The BCC addresses are NOT included.
|
||
|
|
//
|
||
|
|
// (After calling this method, the LastErrorText property can be examined to see the string that was hashed.)
|
||
|
|
// The 16-byte MD5 hash is returned as an encoded string. The encoding determines the
|
||
|
|
// encoding: base64, hex, url, etc. If bFold is true, then the 16-byte MD5 hash is
|
||
|
|
// folded to 8 bytes with an XOR to produce a shorter key.
|
||
|
|
const wchar_t *computeGlobalKey2(const wchar_t *encoding, bool bFold);
|
||
|
|
|
||
|
|
// Converts images embedded inline within HTML to multipart/related MIME parts
|
||
|
|
// referenced from the HTML by CID.
|
||
|
|
bool ConvertInlineImages(void);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications should instead call ToDsn .
|
||
|
|
//
|
||
|
|
// Creates a new DSN (Delivery Status Notification) email having the format as
|
||
|
|
// specified in RFC 3464. See the example (below) for more detailed information.
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkEmailW *CreateDsn(const wchar_t *humanReadableMessage, const wchar_t *xmlStatusFields, bool bHeaderOnly);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications should instead call ToForward .
|
||
|
|
//
|
||
|
|
// Returns a copy of the Email object with the body and header fields changed so
|
||
|
|
// that the newly created email can be forwarded. After calling CreateForward,
|
||
|
|
// simply add new recipients to the created email, and call MailMan.SendEmail.
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkEmailW *CreateForward(void);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications should instead call ToMdn .
|
||
|
|
//
|
||
|
|
// Creates a new MDN (Message Disposition Notification) email having the format as
|
||
|
|
// specified in RFC 3798. See the example (below) for more detailed information.
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkEmailW *CreateMdn(const wchar_t *humanReadableMessage, const wchar_t *xmlStatusFields, bool bHeaderOnly);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications should instead call ToReply .
|
||
|
|
//
|
||
|
|
// Returns a copy of the Email object with the body and header fields changed so
|
||
|
|
// that the newly created email can be sent as a reply. After calling CreateReply,
|
||
|
|
// simply prepend additional information to the body, and call MailMan.SendEmail.
|
||
|
|
//
|
||
|
|
// Note: Attachments are not included in the returned reply email. However,
|
||
|
|
// attached messages are included. If an application does not wish to include the
|
||
|
|
// attached messages in a reply email, they can be removed by calling
|
||
|
|
// RemoveAttachedMessages on the reply email object.
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkEmailW *CreateReply(void);
|
||
|
|
|
||
|
|
// Saves the email to a temporary MHT file so that a WebBrowser control can
|
||
|
|
// navigate to it and display it. If fileName is empty, a temporary filename is
|
||
|
|
// generated and returned. If fileName is non-empty, then it will be created or
|
||
|
|
// overwritten, and the input filename is simply returned.The MHT file that is
|
||
|
|
// created will not contain any of the email's attachments, if any existed. Also,
|
||
|
|
// if the email was plain-text, the MHT file will be saved such that the plain-text
|
||
|
|
// is converted to HTML using pre-formatted text ( pre HTML tags) allowing it to be
|
||
|
|
// displayed correctly in a WebBrowser.
|
||
|
|
bool CreateTempMht(const wchar_t *inFilename, CkString &outPath);
|
||
|
|
// Saves the email to a temporary MHT file so that a WebBrowser control can
|
||
|
|
// navigate to it and display it. If fileName is empty, a temporary filename is
|
||
|
|
// generated and returned. If fileName is non-empty, then it will be created or
|
||
|
|
// overwritten, and the input filename is simply returned.The MHT file that is
|
||
|
|
// created will not contain any of the email's attachments, if any existed. Also,
|
||
|
|
// if the email was plain-text, the MHT file will be saved such that the plain-text
|
||
|
|
// is converted to HTML using pre-formatted text ( pre HTML tags) allowing it to be
|
||
|
|
// displayed correctly in a WebBrowser.
|
||
|
|
const wchar_t *createTempMht(const wchar_t *inFilename);
|
||
|
|
|
||
|
|
// Removes all attachments from the email.
|
||
|
|
void DropAttachments(void);
|
||
|
|
|
||
|
|
// A related item is typically an embedded image referenced from the HTML in the
|
||
|
|
// email via a CID hyperlink. This method removes the Nth embedded image from the
|
||
|
|
// email. Note: If the HTML tries to reference the removed image, it will be
|
||
|
|
// displayed as a broken image link.
|
||
|
|
void DropRelatedItem(int index);
|
||
|
|
|
||
|
|
// A related item is typically an embedded image referenced from the HTML in the
|
||
|
|
// email via a CID hyperlink. This method removes all the embedded images from the
|
||
|
|
// email.
|
||
|
|
void DropRelatedItems(void);
|
||
|
|
|
||
|
|
// Drops a single attachment from the email. Returns True if successful.
|
||
|
|
bool DropSingleAttachment(int index);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications can instead call the certificate
|
||
|
|
// object's GetIssuer method.
|
||
|
|
//
|
||
|
|
// Digitally signed and/or encrypted emails are automatically unwrapped when
|
||
|
|
// received from a POP3 or IMAP server, or when loaded from any source such as a
|
||
|
|
// MIME string, in-memory byte data, or a .eml file. The results of the signature
|
||
|
|
// verification / decryption are stored in the properties such as ReceivedSigned,
|
||
|
|
// ReceivedEncrypted, SignaturesValid, etc. The signing certificate can be obtained
|
||
|
|
// via the GetSigningCert function. If the signature contained more certificates in
|
||
|
|
// the chain of authentication, this method provides a means to access them.
|
||
|
|
//
|
||
|
|
// During signature verification, the email object collects the certs found in the
|
||
|
|
// signature and holds onto them internally. To get the issuing certificate of the
|
||
|
|
// signing certificate, call this method passing the cert returned by
|
||
|
|
// GetSigningCert. If the issuing cert is available, it is returned. Otherwise
|
||
|
|
// _NULL_ is returned. If the cert passed in is the root (i.e. a self-signed
|
||
|
|
// certificate), then the cert object returned is a copy of the cert passed in.
|
||
|
|
//
|
||
|
|
// To traverse the chain to the root, one would write a loop that on first
|
||
|
|
// iteration passes the cert returned by GetSignedByCert (not GetSignerCert), and
|
||
|
|
// then on each subsequent iteration passes the cert from the previous iteration.
|
||
|
|
// The loop would exit when a cert is returned that has the same SubjectDN and
|
||
|
|
// SerialNumber as what was passed in (or when FindIssuer returns _NULL_).
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkCertW *FindIssuer(CkCertW &cert);
|
||
|
|
|
||
|
|
// Generates a unique filename for this email. The filename will be different each
|
||
|
|
// time the method is called.
|
||
|
|
bool GenerateFilename(CkString &outStrFilename);
|
||
|
|
// Generates a unique filename for this email. The filename will be different each
|
||
|
|
// time the method is called.
|
||
|
|
const wchar_t *generateFilename(void);
|
||
|
|
|
||
|
|
// Returns the Nth alternative body. The NumAlternatives property tells the number
|
||
|
|
// of alternative bodies present. Use the GetHtmlBody and GetPlainTextBody methods
|
||
|
|
// to easily get the HTML or plain text alternative bodies.
|
||
|
|
bool GetAlternativeBody(int index, CkString &outStrBody);
|
||
|
|
// Returns the Nth alternative body. The NumAlternatives property tells the number
|
||
|
|
// of alternative bodies present. Use the GetHtmlBody and GetPlainTextBody methods
|
||
|
|
// to easily get the HTML or plain text alternative bodies.
|
||
|
|
const wchar_t *getAlternativeBody(int index);
|
||
|
|
// Returns the Nth alternative body. The NumAlternatives property tells the number
|
||
|
|
// of alternative bodies present. Use the GetHtmlBody and GetPlainTextBody methods
|
||
|
|
// to easily get the HTML or plain text alternative bodies.
|
||
|
|
const wchar_t *alternativeBody(int index);
|
||
|
|
|
||
|
|
// Returns contents of the Nth alternative body to binData. The 1st alternative body
|
||
|
|
// is at index 0. This method should only be called when the NumAlternatives
|
||
|
|
// property has a value greater than 0.
|
||
|
|
bool GetAlternativeBodyBd(int index, CkBinDataW &binData);
|
||
|
|
|
||
|
|
// Returns the alternative body by content-type, such as text/plain , text/html ,
|
||
|
|
// text/xml , etc.
|
||
|
|
bool GetAlternativeBodyByContentType(const wchar_t *contentType, CkString &outStr);
|
||
|
|
// Returns the alternative body by content-type, such as text/plain , text/html ,
|
||
|
|
// text/xml , etc.
|
||
|
|
const wchar_t *getAlternativeBodyByContentType(const wchar_t *contentType);
|
||
|
|
// Returns the alternative body by content-type, such as text/plain , text/html ,
|
||
|
|
// text/xml , etc.
|
||
|
|
const wchar_t *alternativeBodyByContentType(const wchar_t *contentType);
|
||
|
|
|
||
|
|
// Returns the content type of the Nth alternative body. The NumAlternatives
|
||
|
|
// property tells the number of alternative bodies present.
|
||
|
|
bool GetAlternativeContentType(int index, CkString &outStrContentType);
|
||
|
|
// Returns the content type of the Nth alternative body. The NumAlternatives
|
||
|
|
// property tells the number of alternative bodies present.
|
||
|
|
const wchar_t *getAlternativeContentType(int index);
|
||
|
|
// Returns the content type of the Nth alternative body. The NumAlternatives
|
||
|
|
// property tells the number of alternative bodies present.
|
||
|
|
const wchar_t *alternativeContentType(int index);
|
||
|
|
|
||
|
|
// Returns the value of a header field within the Nth alternative body's MIME
|
||
|
|
// sub-part.
|
||
|
|
bool GetAltHeaderField(int index, const wchar_t *fieldName, CkString &outStr);
|
||
|
|
// Returns the value of a header field within the Nth alternative body's MIME
|
||
|
|
// sub-part.
|
||
|
|
const wchar_t *getAltHeaderField(int index, const wchar_t *fieldName);
|
||
|
|
// Returns the value of a header field within the Nth alternative body's MIME
|
||
|
|
// sub-part.
|
||
|
|
const wchar_t *altHeaderField(int index, const wchar_t *fieldName);
|
||
|
|
|
||
|
|
// The Nth embedded message/rfc822 subpart in email.
|
||
|
|
bool GetAttachedEmail(int index, CkEmailW &email);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications should instead call GetAttachedEmail .
|
||
|
|
//
|
||
|
|
// Returns an embedded message/rfc822 subpart as an email object. (Emails are
|
||
|
|
// embedded as message/rfc822 subparts by some mail clients when forwarding an
|
||
|
|
// email.) This method allows the original email to be accessed.
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkEmailW *GetAttachedMessage(int index);
|
||
|
|
|
||
|
|
// Returns a header field attribute value for the Nth attached (embedded) email.
|
||
|
|
// For example, to get the value of the name attribute in the Content-Type header
|
||
|
|
// for the 1st attached message:Content-Type: message/rfc822; name="md75000024149.eml"
|
||
|
|
// then the method arguments should contain the values 0, Content-Type , name .
|
||
|
|
bool GetAttachedMessageAttr(int index, const wchar_t *fieldName, const wchar_t *attrName, CkString &outStr);
|
||
|
|
// Returns a header field attribute value for the Nth attached (embedded) email.
|
||
|
|
// For example, to get the value of the name attribute in the Content-Type header
|
||
|
|
// for the 1st attached message:Content-Type: message/rfc822; name="md75000024149.eml"
|
||
|
|
// then the method arguments should contain the values 0, Content-Type , name .
|
||
|
|
const wchar_t *getAttachedMessageAttr(int index, const wchar_t *fieldName, const wchar_t *attrName);
|
||
|
|
// Returns a header field attribute value for the Nth attached (embedded) email.
|
||
|
|
// For example, to get the value of the name attribute in the Content-Type header
|
||
|
|
// for the 1st attached message:Content-Type: message/rfc822; name="md75000024149.eml"
|
||
|
|
// then the method arguments should contain the values 0, Content-Type , name .
|
||
|
|
const wchar_t *attachedMessageAttr(int index, const wchar_t *fieldName, const wchar_t *attrName);
|
||
|
|
|
||
|
|
// Returns the filename of the Nth attached (embedded) email. The filename is the
|
||
|
|
// filename attribute of the content-disposition header field found within the Nth
|
||
|
|
// message/rfc822 sub-part of the calling email object.
|
||
|
|
//
|
||
|
|
// Important: The attached message filename is only present if the
|
||
|
|
// Content-Disposition header exists AND contains a filename attribute. If
|
||
|
|
// questions arise, one could open the email in a text editor to examine the MIME
|
||
|
|
// sub-header for the attached message (where the Content-Type = message/rfc822 ).
|
||
|
|
// For example, here is a sub-header that has a filename:Content-Type: message/rfc822; name="GetAttachedMessageAttr.eml"
|
||
|
|
// Content-Transfer-Encoding: 7bit
|
||
|
|
// Content-Disposition: attachment; filename="GetAttachedMessageAttr.eml"
|
||
|
|
// Here is an attached message sub-header that does NOT have a filename:Content-Type: message/rfc822
|
||
|
|
// Content-Transfer-Encoding: 7bit
|
||
|
|
// Content-Disposition: attachment
|
||
|
|
//
|
||
|
|
bool GetAttachedMessageFilename(int index, CkString &outStr);
|
||
|
|
// Returns the filename of the Nth attached (embedded) email. The filename is the
|
||
|
|
// filename attribute of the content-disposition header field found within the Nth
|
||
|
|
// message/rfc822 sub-part of the calling email object.
|
||
|
|
//
|
||
|
|
// Important: The attached message filename is only present if the
|
||
|
|
// Content-Disposition header exists AND contains a filename attribute. If
|
||
|
|
// questions arise, one could open the email in a text editor to examine the MIME
|
||
|
|
// sub-header for the attached message (where the Content-Type = message/rfc822 ).
|
||
|
|
// For example, here is a sub-header that has a filename:Content-Type: message/rfc822; name="GetAttachedMessageAttr.eml"
|
||
|
|
// Content-Transfer-Encoding: 7bit
|
||
|
|
// Content-Disposition: attachment; filename="GetAttachedMessageAttr.eml"
|
||
|
|
// Here is an attached message sub-header that does NOT have a filename:Content-Type: message/rfc822
|
||
|
|
// Content-Transfer-Encoding: 7bit
|
||
|
|
// Content-Disposition: attachment
|
||
|
|
//
|
||
|
|
const wchar_t *getAttachedMessageFilename(int index);
|
||
|
|
// Returns the filename of the Nth attached (embedded) email. The filename is the
|
||
|
|
// filename attribute of the content-disposition header field found within the Nth
|
||
|
|
// message/rfc822 sub-part of the calling email object.
|
||
|
|
//
|
||
|
|
// Important: The attached message filename is only present if the
|
||
|
|
// Content-Disposition header exists AND contains a filename attribute. If
|
||
|
|
// questions arise, one could open the email in a text editor to examine the MIME
|
||
|
|
// sub-header for the attached message (where the Content-Type = message/rfc822 ).
|
||
|
|
// For example, here is a sub-header that has a filename:Content-Type: message/rfc822; name="GetAttachedMessageAttr.eml"
|
||
|
|
// Content-Transfer-Encoding: 7bit
|
||
|
|
// Content-Disposition: attachment; filename="GetAttachedMessageAttr.eml"
|
||
|
|
// Here is an attached message sub-header that does NOT have a filename:Content-Type: message/rfc822
|
||
|
|
// Content-Transfer-Encoding: 7bit
|
||
|
|
// Content-Disposition: attachment
|
||
|
|
//
|
||
|
|
const wchar_t *attachedMessageFilename(int index);
|
||
|
|
|
||
|
|
// Returns a header field attribute value from the header field of the Nth
|
||
|
|
// attachment.
|
||
|
|
bool GetAttachmentAttr(int index, const wchar_t *fieldName, const wchar_t *attrName, CkString &outStr);
|
||
|
|
// Returns a header field attribute value from the header field of the Nth
|
||
|
|
// attachment.
|
||
|
|
const wchar_t *getAttachmentAttr(int index, const wchar_t *fieldName, const wchar_t *attrName);
|
||
|
|
// Returns a header field attribute value from the header field of the Nth
|
||
|
|
// attachment.
|
||
|
|
const wchar_t *attachmentAttr(int index, const wchar_t *fieldName, const wchar_t *attrName);
|
||
|
|
|
||
|
|
// Copies an attachment's binary data into binData. The first attachment is at index
|
||
|
|
// 0.
|
||
|
|
bool GetAttachmentBd(int index, CkBinDataW &binData);
|
||
|
|
|
||
|
|
// Returns the ContentID header field for the Nth attachment. The first attachment
|
||
|
|
// is at index 0.
|
||
|
|
bool GetAttachmentContentID(int index, CkString &outStrContentID);
|
||
|
|
// Returns the ContentID header field for the Nth attachment. The first attachment
|
||
|
|
// is at index 0.
|
||
|
|
const wchar_t *getAttachmentContentID(int index);
|
||
|
|
// Returns the ContentID header field for the Nth attachment. The first attachment
|
||
|
|
// is at index 0.
|
||
|
|
const wchar_t *attachmentContentID(int index);
|
||
|
|
|
||
|
|
// Returns the Content-Type header field for the Nth attachment. Indexing of
|
||
|
|
// attachments begins at 0.
|
||
|
|
bool GetAttachmentContentType(int index, CkString &outStrContentType);
|
||
|
|
// Returns the Content-Type header field for the Nth attachment. Indexing of
|
||
|
|
// attachments begins at 0.
|
||
|
|
const wchar_t *getAttachmentContentType(int index);
|
||
|
|
// Returns the Content-Type header field for the Nth attachment. Indexing of
|
||
|
|
// attachments begins at 0.
|
||
|
|
const wchar_t *attachmentContentType(int index);
|
||
|
|
|
||
|
|
// Retrieves an attachment's binary data for in-memory access.
|
||
|
|
bool GetAttachmentData(int index, CkByteData &outData);
|
||
|
|
|
||
|
|
// Retrieves an attachment's filename.
|
||
|
|
bool GetAttachmentFilename(int index, CkString &outStrFilename);
|
||
|
|
// Retrieves an attachment's filename.
|
||
|
|
const wchar_t *getAttachmentFilename(int index);
|
||
|
|
// Retrieves an attachment's filename.
|
||
|
|
const wchar_t *attachmentFilename(int index);
|
||
|
|
|
||
|
|
// Returns the value of a header field (by name) of an attachment.
|
||
|
|
bool GetAttachmentHeader(int attachIndex, const wchar_t *fieldName, CkString &outFieldValue);
|
||
|
|
// Returns the value of a header field (by name) of an attachment.
|
||
|
|
const wchar_t *getAttachmentHeader(int attachIndex, const wchar_t *fieldName);
|
||
|
|
// Returns the value of a header field (by name) of an attachment.
|
||
|
|
const wchar_t *attachmentHeader(int attachIndex, const wchar_t *fieldName);
|
||
|
|
|
||
|
|
// Returns the size (in bytes) of the Nth attachment. The 1st attachment is at
|
||
|
|
// index 0. Returns -1 if there is no attachment at the specified index.
|
||
|
|
int GetAttachmentSize(int index);
|
||
|
|
|
||
|
|
// Retrieves an attachment's data as a String. All CRLF sequences will be
|
||
|
|
// translated to single newline characters. The charset indicates how to interpret the
|
||
|
|
// bytes of the attachment. For example, if the attachment is a text file using the
|
||
|
|
// utf-8 byte representation for characters, pass utf-8 .
|
||
|
|
bool GetAttachmentString(int index, const wchar_t *charset, CkString &outStr);
|
||
|
|
// Retrieves an attachment's data as a String. All CRLF sequences will be
|
||
|
|
// translated to single newline characters. The charset indicates how to interpret the
|
||
|
|
// bytes of the attachment. For example, if the attachment is a text file using the
|
||
|
|
// utf-8 byte representation for characters, pass utf-8 .
|
||
|
|
const wchar_t *getAttachmentString(int index, const wchar_t *charset);
|
||
|
|
// Retrieves an attachment's data as a String. All CRLF sequences will be
|
||
|
|
// translated to single newline characters. The charset indicates how to interpret the
|
||
|
|
// bytes of the attachment. For example, if the attachment is a text file using the
|
||
|
|
// utf-8 byte representation for characters, pass utf-8 .
|
||
|
|
const wchar_t *attachmentString(int index, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Retrieves an attachment's data as a String. All end-of-lines will be translated
|
||
|
|
// to CRLF sequences.
|
||
|
|
bool GetAttachmentStringCrLf(int index, const wchar_t *charset, CkString &outStrData);
|
||
|
|
// Retrieves an attachment's data as a String. All end-of-lines will be translated
|
||
|
|
// to CRLF sequences.
|
||
|
|
const wchar_t *getAttachmentStringCrLf(int index, const wchar_t *charset);
|
||
|
|
// Retrieves an attachment's data as a String. All end-of-lines will be translated
|
||
|
|
// to CRLF sequences.
|
||
|
|
const wchar_t *attachmentStringCrLf(int index, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Returns a blind carbon-copy recipient's full email address.
|
||
|
|
bool GetBcc(int index, CkString &outStr);
|
||
|
|
// Returns a blind carbon-copy recipient's full email address.
|
||
|
|
const wchar_t *getBcc(int index);
|
||
|
|
// Returns a blind carbon-copy recipient's full email address.
|
||
|
|
const wchar_t *bcc(int index);
|
||
|
|
|
||
|
|
// Returns the Nth BCC address (only the address part, not the friendly-name part).
|
||
|
|
bool GetBccAddr(int index, CkString &outStr);
|
||
|
|
// Returns the Nth BCC address (only the address part, not the friendly-name part).
|
||
|
|
const wchar_t *getBccAddr(int index);
|
||
|
|
// Returns the Nth BCC address (only the address part, not the friendly-name part).
|
||
|
|
const wchar_t *bccAddr(int index);
|
||
|
|
|
||
|
|
// Returns the Nth BCC name (only the friendly-name part, not the address part).
|
||
|
|
bool GetBccName(int index, CkString &outStr);
|
||
|
|
// Returns the Nth BCC name (only the friendly-name part, not the address part).
|
||
|
|
const wchar_t *getBccName(int index);
|
||
|
|
// Returns the Nth BCC name (only the friendly-name part, not the address part).
|
||
|
|
const wchar_t *bccName(int index);
|
||
|
|
|
||
|
|
// Returns a carbon-copy recipient's full email address.
|
||
|
|
bool GetCC(int index, CkString &outStr);
|
||
|
|
// Returns a carbon-copy recipient's full email address.
|
||
|
|
const wchar_t *getCC(int index);
|
||
|
|
// Returns a carbon-copy recipient's full email address.
|
||
|
|
const wchar_t *cC(int index);
|
||
|
|
|
||
|
|
// Returns the Nth CC address (only the address part, not the friendly-name part).
|
||
|
|
bool GetCcAddr(int index, CkString &outStr);
|
||
|
|
// Returns the Nth CC address (only the address part, not the friendly-name part).
|
||
|
|
const wchar_t *getCcAddr(int index);
|
||
|
|
// Returns the Nth CC address (only the address part, not the friendly-name part).
|
||
|
|
const wchar_t *ccAddr(int index);
|
||
|
|
|
||
|
|
// Returns the Nth CC name (only the friendly-name part, not the address part).
|
||
|
|
bool GetCcName(int index, CkString &outStr);
|
||
|
|
// Returns the Nth CC name (only the friendly-name part, not the address part).
|
||
|
|
const wchar_t *getCcName(int index);
|
||
|
|
// Returns the Nth CC name (only the friendly-name part, not the address part).
|
||
|
|
const wchar_t *ccName(int index);
|
||
|
|
|
||
|
|
// If the email is a multipart/report, then it is a delivery status notification.
|
||
|
|
// This method can be used to get individual pieces of information from the
|
||
|
|
// message/delivery-status part of the email. This method should only be called if
|
||
|
|
// the IsMultipartReport method returns true.
|
||
|
|
//
|
||
|
|
// The fieldName should be set a string such as Final-Recipient , Status , Action ,
|
||
|
|
// Reporting-MTA , etc.Reporting-MTA: dns; XYZ.abc.nl
|
||
|
|
//
|
||
|
|
// Final-recipient: RFC822; someEmailAddr@doesnotexist123.nl
|
||
|
|
// Action: failed
|
||
|
|
// Status: 5.4.4
|
||
|
|
// X-Supplementary-Info:
|
||
|
|
//
|
||
|
|
bool GetDeliveryStatusInfo(const wchar_t *fieldName, CkString &outFieldValue);
|
||
|
|
// If the email is a multipart/report, then it is a delivery status notification.
|
||
|
|
// This method can be used to get individual pieces of information from the
|
||
|
|
// message/delivery-status part of the email. This method should only be called if
|
||
|
|
// the IsMultipartReport method returns true.
|
||
|
|
//
|
||
|
|
// The fieldName should be set a string such as Final-Recipient , Status , Action ,
|
||
|
|
// Reporting-MTA , etc.Reporting-MTA: dns; XYZ.abc.nl
|
||
|
|
//
|
||
|
|
// Final-recipient: RFC822; someEmailAddr@doesnotexist123.nl
|
||
|
|
// Action: failed
|
||
|
|
// Status: 5.4.4
|
||
|
|
// X-Supplementary-Info:
|
||
|
|
//
|
||
|
|
const wchar_t *getDeliveryStatusInfo(const wchar_t *fieldName);
|
||
|
|
// If the email is a multipart/report, then it is a delivery status notification.
|
||
|
|
// This method can be used to get individual pieces of information from the
|
||
|
|
// message/delivery-status part of the email. This method should only be called if
|
||
|
|
// the IsMultipartReport method returns true.
|
||
|
|
//
|
||
|
|
// The fieldName should be set a string such as Final-Recipient , Status , Action ,
|
||
|
|
// Reporting-MTA , etc.Reporting-MTA: dns; XYZ.abc.nl
|
||
|
|
//
|
||
|
|
// Final-recipient: RFC822; someEmailAddr@doesnotexist123.nl
|
||
|
|
// Action: failed
|
||
|
|
// Status: 5.4.4
|
||
|
|
// X-Supplementary-Info:
|
||
|
|
//
|
||
|
|
const wchar_t *deliveryStatusInfo(const wchar_t *fieldName);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications should instead call GetDigestEmail .
|
||
|
|
//
|
||
|
|
// Returns an digest contained within a multipart/digest as an email object. The
|
||
|
|
// 1st digest is at index 0. Use the NumDigests property to get the number of
|
||
|
|
// digests available.
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkEmailW *GetDigest(int index);
|
||
|
|
|
||
|
|
// Returns in email the Nth digest email contained within a multipart/digest. The
|
||
|
|
// 1st digest is at index 0. Use the NumDigests property to get the number of
|
||
|
|
// digests available.
|
||
|
|
bool GetDigestEmail(int index, CkEmailW &email);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications should instead call GetDsnInfo .
|
||
|
|
//
|
||
|
|
// If the email is a multipart/report, then it is a delivery status notification.
|
||
|
|
// This method can be used to get Final-Recipient values from the
|
||
|
|
// message/delivery-status part of the email. This method should only be called if
|
||
|
|
// the IsMultipartReport method returns true.
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkStringArrayW *GetDsnFinalRecipients(void);
|
||
|
|
|
||
|
|
// If the IsMultipartReport property indicates that the email is multipart/report ,
|
||
|
|
// you can use this method to obtain the delivery status information, including the
|
||
|
|
// final recipients, in a JSON format that is easy to parse.
|
||
|
|
//
|
||
|
|
// References:
|
||
|
|
// 1: #IsMultipartReport
|
||
|
|
bool GetDsnInfo(CkJsonObjectW &json);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications should instead use the EmailDateStr
|
||
|
|
// property.
|
||
|
|
//
|
||
|
|
// Returns the date/time found in the Date header field as a date/time object.
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkDateTimeW *GetDt(void);
|
||
|
|
|
||
|
|
// Returns the certificate that was previously set by SetEncryptCert.
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkCertW *GetEncryptCert(void);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications should instead call LastDecryptCert to
|
||
|
|
// get the certificate used to decrypt this email.
|
||
|
|
//
|
||
|
|
// Returns the certificate associated with a received encrypted email.
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkCertW *GetEncryptedByCert(void);
|
||
|
|
|
||
|
|
// Reads a file and returns the contents. This is here purely for convenience.
|
||
|
|
bool GetFileContent(const wchar_t *path, CkByteData &outData);
|
||
|
|
|
||
|
|
// Returns the value of a header field.
|
||
|
|
bool GetHeaderField(const wchar_t *fieldName, CkString &outStrFieldData);
|
||
|
|
// Returns the value of a header field.
|
||
|
|
const wchar_t *getHeaderField(const wchar_t *fieldName);
|
||
|
|
// Returns the value of a header field.
|
||
|
|
const wchar_t *headerField(const wchar_t *fieldName);
|
||
|
|
|
||
|
|
// Return the name of the Nth header field. The NumHeaderFields() method can be
|
||
|
|
// used to get the number of header fields. The GetHeaderField() method can be used
|
||
|
|
// to get the value of the field given the field name.
|
||
|
|
//
|
||
|
|
// The 1st header field is at index 0. (All Chilkat indexing is 0-based.)
|
||
|
|
//
|
||
|
|
bool GetHeaderFieldName(int index, CkString &outStrFieldName);
|
||
|
|
// Return the name of the Nth header field. The NumHeaderFields() method can be
|
||
|
|
// used to get the number of header fields. The GetHeaderField() method can be used
|
||
|
|
// to get the value of the field given the field name.
|
||
|
|
//
|
||
|
|
// The 1st header field is at index 0. (All Chilkat indexing is 0-based.)
|
||
|
|
//
|
||
|
|
const wchar_t *getHeaderFieldName(int index);
|
||
|
|
// Return the name of the Nth header field. The NumHeaderFields() method can be
|
||
|
|
// used to get the number of header fields. The GetHeaderField() method can be used
|
||
|
|
// to get the value of the field given the field name.
|
||
|
|
//
|
||
|
|
// The 1st header field is at index 0. (All Chilkat indexing is 0-based.)
|
||
|
|
//
|
||
|
|
const wchar_t *headerFieldName(int index);
|
||
|
|
|
||
|
|
// Returns the value of the Nth header field. (Indexing begins at 0) The number of
|
||
|
|
// header fields can be obtained from the NumHeaderFields property.
|
||
|
|
//
|
||
|
|
// The 1st header field is at index 0, the last header field is at index
|
||
|
|
// NumHeaderFields-1. (All Chilkat indexing is 0-based.)
|
||
|
|
//
|
||
|
|
bool GetHeaderFieldValue(int index, CkString &outStrFieldValue);
|
||
|
|
// Returns the value of the Nth header field. (Indexing begins at 0) The number of
|
||
|
|
// header fields can be obtained from the NumHeaderFields property.
|
||
|
|
//
|
||
|
|
// The 1st header field is at index 0, the last header field is at index
|
||
|
|
// NumHeaderFields-1. (All Chilkat indexing is 0-based.)
|
||
|
|
//
|
||
|
|
const wchar_t *getHeaderFieldValue(int index);
|
||
|
|
// Returns the value of the Nth header field. (Indexing begins at 0) The number of
|
||
|
|
// header fields can be obtained from the NumHeaderFields property.
|
||
|
|
//
|
||
|
|
// The 1st header field is at index 0, the last header field is at index
|
||
|
|
// NumHeaderFields-1. (All Chilkat indexing is 0-based.)
|
||
|
|
//
|
||
|
|
const wchar_t *headerFieldValue(int index);
|
||
|
|
|
||
|
|
// Returns the body having the text/html content type.
|
||
|
|
bool GetHtmlBody(CkString &outStrBody);
|
||
|
|
// Returns the body having the text/html content type.
|
||
|
|
const wchar_t *getHtmlBody(void);
|
||
|
|
// Returns the body having the text/html content type.
|
||
|
|
const wchar_t *htmlBody(void);
|
||
|
|
|
||
|
|
// Returns the body having the text/html content type. If inlineImageData is true, the
|
||
|
|
// related images found in the MIME are inlined as base64 directly within the
|
||
|
|
// returned HTML. The HTML is returned in sb.
|
||
|
|
bool GetHtmlBodySb(bool inlineImageData, CkStringBuilderW &sb);
|
||
|
|
|
||
|
|
// When email headers are downloaded from an IMAP server (using Chilkat IMAP), a
|
||
|
|
// ckx-imap-uid header field is added. The content of this header is the UID or
|
||
|
|
// sequence number of the email on the IMAP server. In addition, a ckx-imap-isUid
|
||
|
|
// header field is added, and this will have the value YES or NO. If the value is
|
||
|
|
// YES, then ckx-imap-uid contains a UID, if the value is NO, then ckx-imap-uid
|
||
|
|
// contains the sequence number. This method returns the UID if ckx-imap-uid exists
|
||
|
|
// and contains a UID, otherwise it returns 0xFFFFFFFF.
|
||
|
|
//
|
||
|
|
// An application that wishes to download the full email would use this UID and
|
||
|
|
// then call the Chilkat IMAP object's FetchSingle or FetchSingleAsMime methods.
|
||
|
|
//
|
||
|
|
// Note:If an email was downloaded from the IMAP server in a way such that the UID
|
||
|
|
// is not received, then there will be no ckx-imap-uid header field and this method
|
||
|
|
// would return 0xFFFFFFFF. For example, if emails are downloaded by sequence
|
||
|
|
// numbers via the Imap.FetchSequence method, then UIDs are not used and therefore
|
||
|
|
// the email object will not contain this information.
|
||
|
|
//
|
||
|
|
unsigned long GetImapUid(void);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications should instead call LinkedDomains .
|
||
|
|
//
|
||
|
|
// Parses an HTML email and returns the set of domain names that occur in
|
||
|
|
// hyperlinks within the HTML body.
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkStringArrayW *GetLinkedDomains(void);
|
||
|
|
|
||
|
|
// Return the email as MIME text containing the email header, body (or bodies),
|
||
|
|
// related items (if any), and all attachments
|
||
|
|
bool GetMime(CkString &outStrMime);
|
||
|
|
// Return the email as MIME text containing the email header, body (or bodies),
|
||
|
|
// related items (if any), and all attachments
|
||
|
|
const wchar_t *getMime(void);
|
||
|
|
// Return the email as MIME text containing the email header, body (or bodies),
|
||
|
|
// related items (if any), and all attachments
|
||
|
|
const wchar_t *mime(void);
|
||
|
|
|
||
|
|
// Return the email as binary MIME containing the email header, body (or bodies),
|
||
|
|
// related items (if any), and all attachments. The MIME is appended to the
|
||
|
|
// existing contents (if any) of bindat.
|
||
|
|
bool GetMimeBd(CkBinDataW &bindat);
|
||
|
|
|
||
|
|
// Returns the full MIME of an email.
|
||
|
|
bool GetMimeBinary(CkByteData &outBytes);
|
||
|
|
|
||
|
|
// Return the email as MIME text containing the email header, body (or bodies),
|
||
|
|
// related items (if any), and all attachments. The MIME is appended to the
|
||
|
|
// existing contents (if any) of sb.
|
||
|
|
bool GetMimeSb(CkStringBuilderW &sb);
|
||
|
|
|
||
|
|
// Returns the binary bytes of the Nth MIME sub-part having a specified content
|
||
|
|
// type (such as application/pdf . Indexing begins at 0. Call GetNumPartsOfType to
|
||
|
|
// find out how many MIME sub-parts exist for any given content type. If inlineOnly is
|
||
|
|
// true, then only MIME sub-parts having a content-disposition of inline are
|
||
|
|
// included. If excludeAttachments is true, then MIME sub-parts having a content-disposition of
|
||
|
|
// attachment are excluded.
|
||
|
|
//
|
||
|
|
// Note: If the email was downloaded as header-only, it will not contain all the
|
||
|
|
// parts of the full email. Also, if downloaded from IMAP excluding attachments,
|
||
|
|
// those parts that are the attachments will (of course) be missing.
|
||
|
|
//
|
||
|
|
// Note: Beginning in v9.5.0.95, the contentType can be wildcarded. For example, it is
|
||
|
|
// possible to specify text/* , or simply * to match any Content-Type.
|
||
|
|
//
|
||
|
|
// Note: Only non-multipart MIME parts are matched.
|
||
|
|
//
|
||
|
|
bool GetNthBinaryPartOfType(int index, const wchar_t *contentType, bool inlineOnly, bool excludeAttachments, CkByteData &outBytes);
|
||
|
|
|
||
|
|
// Loads bd with the binary bytes of the Nth MIME sub-part matching the contentType,
|
||
|
|
// which can be an exact Content-Type such as application/pdf , or a wildcarded
|
||
|
|
// Content-Type such as application/* , or */* . Indexing begins at 0. Call
|
||
|
|
// GetNumPartsOfType to find out how many MIME sub-parts exist for any given
|
||
|
|
// content type. If inlineOnly is true, then only MIME sub-parts having a
|
||
|
|
// content-disposition of inline are included. If excludeAttachments is true, then MIME
|
||
|
|
// sub-parts having a content-disposition of attachment are excluded.
|
||
|
|
//
|
||
|
|
// Note: If the email was downloaded as header-only, it will not contain all the
|
||
|
|
// parts of the full email. Also, if downloaded from IMAP excluding attachments,
|
||
|
|
// those parts that are the attachments will (of course) be missing.
|
||
|
|
//
|
||
|
|
// Note: Beginning in v9.5.0.95, the contentType can be wildcarded. For example, it is
|
||
|
|
// possible to specify text/* , or simply * to match any Content-Type.
|
||
|
|
//
|
||
|
|
// Note: Only non-multipart MIME parts are matched.
|
||
|
|
//
|
||
|
|
bool GetNthBinaryPartOfTypeBd(int index, const wchar_t *contentType, bool inlineOnly, bool excludeAttachments, CkBinDataW &bd);
|
||
|
|
|
||
|
|
// Returns the Content-Type of the Nth MIME sub-part matching the specified contentType.
|
||
|
|
// The contentType can be a Content-Type such as text/plain , or a wildcarded Content-Type
|
||
|
|
// such as text/* , or even just * to match all Content-Types. If inlineOnly is true,
|
||
|
|
// then only MIME sub-parts having a content-disposition of inline are included. If
|
||
|
|
// excludeAttachments is true, then MIME sub-parts having a content-disposition of attachment
|
||
|
|
// are excluded.
|
||
|
|
//
|
||
|
|
// Note: Only non-multipart content-types are matched.
|
||
|
|
//
|
||
|
|
bool GetNthContentType(int index, const wchar_t *contentType, bool inlineOnly, bool excludeAttachments, CkString &outStr);
|
||
|
|
// Returns the Content-Type of the Nth MIME sub-part matching the specified contentType.
|
||
|
|
// The contentType can be a Content-Type such as text/plain , or a wildcarded Content-Type
|
||
|
|
// such as text/* , or even just * to match all Content-Types. If inlineOnly is true,
|
||
|
|
// then only MIME sub-parts having a content-disposition of inline are included. If
|
||
|
|
// excludeAttachments is true, then MIME sub-parts having a content-disposition of attachment
|
||
|
|
// are excluded.
|
||
|
|
//
|
||
|
|
// Note: Only non-multipart content-types are matched.
|
||
|
|
//
|
||
|
|
const wchar_t *getNthContentType(int index, const wchar_t *contentType, bool inlineOnly, bool excludeAttachments);
|
||
|
|
// Returns the Content-Type of the Nth MIME sub-part matching the specified contentType.
|
||
|
|
// The contentType can be a Content-Type such as text/plain , or a wildcarded Content-Type
|
||
|
|
// such as text/* , or even just * to match all Content-Types. If inlineOnly is true,
|
||
|
|
// then only MIME sub-parts having a content-disposition of inline are included. If
|
||
|
|
// excludeAttachments is true, then MIME sub-parts having a content-disposition of attachment
|
||
|
|
// are excluded.
|
||
|
|
//
|
||
|
|
// Note: Only non-multipart content-types are matched.
|
||
|
|
//
|
||
|
|
const wchar_t *nthContentType(int index, const wchar_t *contentType, bool inlineOnly, bool excludeAttachments);
|
||
|
|
|
||
|
|
// Returns the text of the Nth MIME sub-part having a specified content type (such
|
||
|
|
// as text/plain . Indexing begins at 0. Call GetNumPartsOfType to find out how
|
||
|
|
// many MIME sub-parts exist for any given content type. If inlineOnly is true, then
|
||
|
|
// only MIME sub-parts having a content-disposition of inline are included. If excludeAttachments
|
||
|
|
// is true, then MIME sub-parts having a content-disposition of attachment are
|
||
|
|
// excluded.
|
||
|
|
//
|
||
|
|
// Note: If the email was downloaded as header-only, it will not contain all the
|
||
|
|
// parts of the full email. Also, if downloaded from IMAP excluding attachments,
|
||
|
|
// those parts that are the attachments will (of course) be missing.
|
||
|
|
//
|
||
|
|
// Note: Beginning in v9.5.0.95, the contentType can be wildcarded. For example, it is
|
||
|
|
// possible to specify text/* , or simply * to match any Content-Type.
|
||
|
|
//
|
||
|
|
// Note: Only non-multipart MIME parts are matched.
|
||
|
|
//
|
||
|
|
bool GetNthTextPartOfType(int index, const wchar_t *contentType, bool inlineOnly, bool excludeAttachments, CkString &outStr);
|
||
|
|
// Returns the text of the Nth MIME sub-part having a specified content type (such
|
||
|
|
// as text/plain . Indexing begins at 0. Call GetNumPartsOfType to find out how
|
||
|
|
// many MIME sub-parts exist for any given content type. If inlineOnly is true, then
|
||
|
|
// only MIME sub-parts having a content-disposition of inline are included. If excludeAttachments
|
||
|
|
// is true, then MIME sub-parts having a content-disposition of attachment are
|
||
|
|
// excluded.
|
||
|
|
//
|
||
|
|
// Note: If the email was downloaded as header-only, it will not contain all the
|
||
|
|
// parts of the full email. Also, if downloaded from IMAP excluding attachments,
|
||
|
|
// those parts that are the attachments will (of course) be missing.
|
||
|
|
//
|
||
|
|
// Note: Beginning in v9.5.0.95, the contentType can be wildcarded. For example, it is
|
||
|
|
// possible to specify text/* , or simply * to match any Content-Type.
|
||
|
|
//
|
||
|
|
// Note: Only non-multipart MIME parts are matched.
|
||
|
|
//
|
||
|
|
const wchar_t *getNthTextPartOfType(int index, const wchar_t *contentType, bool inlineOnly, bool excludeAttachments);
|
||
|
|
// Returns the text of the Nth MIME sub-part having a specified content type (such
|
||
|
|
// as text/plain . Indexing begins at 0. Call GetNumPartsOfType to find out how
|
||
|
|
// many MIME sub-parts exist for any given content type. If inlineOnly is true, then
|
||
|
|
// only MIME sub-parts having a content-disposition of inline are included. If excludeAttachments
|
||
|
|
// is true, then MIME sub-parts having a content-disposition of attachment are
|
||
|
|
// excluded.
|
||
|
|
//
|
||
|
|
// Note: If the email was downloaded as header-only, it will not contain all the
|
||
|
|
// parts of the full email. Also, if downloaded from IMAP excluding attachments,
|
||
|
|
// those parts that are the attachments will (of course) be missing.
|
||
|
|
//
|
||
|
|
// Note: Beginning in v9.5.0.95, the contentType can be wildcarded. For example, it is
|
||
|
|
// possible to specify text/* , or simply * to match any Content-Type.
|
||
|
|
//
|
||
|
|
// Note: Only non-multipart MIME parts are matched.
|
||
|
|
//
|
||
|
|
const wchar_t *nthTextPartOfType(int index, const wchar_t *contentType, bool inlineOnly, bool excludeAttachments);
|
||
|
|
|
||
|
|
// Returns the number of MIME sub-parts within the email having a specified content
|
||
|
|
// type (such as text/plain ). If inlineOnly is true, then only MIME sub-parts having a
|
||
|
|
// content-disposition of inline are included. If excludeAttachments is true, then MIME
|
||
|
|
// sub-parts having a content-disposition of attachment are excluded.
|
||
|
|
//
|
||
|
|
// Note: If the email was downloaded as header-only, it will not contain all the
|
||
|
|
// parts of the full email. Also, if downloaded from IMAP excluding attachments,
|
||
|
|
// those parts that are the attachments will (of course) be missing.
|
||
|
|
//
|
||
|
|
// Note: Beginning in v9.5.0.95, the inlineOnly can be wildcarded. For example, it is
|
||
|
|
// possible to specify text/* , or simply * to match any Content-Type.
|
||
|
|
//
|
||
|
|
// Note: Only non-multipart MIME parts are matched (i.e. leaf-node MIME parts that
|
||
|
|
// contain a text or binary body).
|
||
|
|
//
|
||
|
|
int GetNumPartsOfType(const wchar_t *contentType, bool inlineOnly, bool excludeAttachments);
|
||
|
|
|
||
|
|
// Returns the email body having the text/plain content type.
|
||
|
|
bool GetPlainTextBody(CkString &outStrBody);
|
||
|
|
// Returns the email body having the text/plain content type.
|
||
|
|
const wchar_t *getPlainTextBody(void);
|
||
|
|
// Returns the email body having the text/plain content type.
|
||
|
|
const wchar_t *plainTextBody(void);
|
||
|
|
|
||
|
|
// Returns a header field attribute value from the header field of the Nth related
|
||
|
|
// item.
|
||
|
|
bool GetRelatedAttr(int index, const wchar_t *fieldName, const wchar_t *attrName, CkString &outStr);
|
||
|
|
// Returns a header field attribute value from the header field of the Nth related
|
||
|
|
// item.
|
||
|
|
const wchar_t *getRelatedAttr(int index, const wchar_t *fieldName, const wchar_t *attrName);
|
||
|
|
// Returns a header field attribute value from the header field of the Nth related
|
||
|
|
// item.
|
||
|
|
const wchar_t *relatedAttr(int index, const wchar_t *fieldName, const wchar_t *attrName);
|
||
|
|
|
||
|
|
// Returns the content ID of a related item contained with the email. Related items
|
||
|
|
// are typically images and style-sheets embedded within HTML emails.
|
||
|
|
bool GetRelatedContentID(int index, CkString &outStrContentID);
|
||
|
|
// Returns the content ID of a related item contained with the email. Related items
|
||
|
|
// are typically images and style-sheets embedded within HTML emails.
|
||
|
|
const wchar_t *getRelatedContentID(int index);
|
||
|
|
// Returns the content ID of a related item contained with the email. Related items
|
||
|
|
// are typically images and style-sheets embedded within HTML emails.
|
||
|
|
const wchar_t *relatedContentID(int index);
|
||
|
|
|
||
|
|
// Returns the Content-Location of a related item contained with the email. Related
|
||
|
|
// items are typically images and style-sheets embedded within HTML emails.
|
||
|
|
bool GetRelatedContentLocation(int index, CkString &outStr);
|
||
|
|
// Returns the Content-Location of a related item contained with the email. Related
|
||
|
|
// items are typically images and style-sheets embedded within HTML emails.
|
||
|
|
const wchar_t *getRelatedContentLocation(int index);
|
||
|
|
// Returns the Content-Location of a related item contained with the email. Related
|
||
|
|
// items are typically images and style-sheets embedded within HTML emails.
|
||
|
|
const wchar_t *relatedContentLocation(int index);
|
||
|
|
|
||
|
|
// Returns the content-type of the Nth related content item in an email message.
|
||
|
|
bool GetRelatedContentType(int index, CkString &outStrContentType);
|
||
|
|
// Returns the content-type of the Nth related content item in an email message.
|
||
|
|
const wchar_t *getRelatedContentType(int index);
|
||
|
|
// Returns the content-type of the Nth related content item in an email message.
|
||
|
|
const wchar_t *relatedContentType(int index);
|
||
|
|
|
||
|
|
// Returns the content of a related item contained with the email. Related items
|
||
|
|
// are typically images and style-sheets embedded within HTML emails.
|
||
|
|
bool GetRelatedData(int index, CkByteData &outBuffer);
|
||
|
|
|
||
|
|
// Returns the filename of a related item contained with the email. Related items
|
||
|
|
// are typically images and style-sheets embedded within HTML emails.
|
||
|
|
bool GetRelatedFilename(int index, CkString &outStrFilename);
|
||
|
|
// Returns the filename of a related item contained with the email. Related items
|
||
|
|
// are typically images and style-sheets embedded within HTML emails.
|
||
|
|
const wchar_t *getRelatedFilename(int index);
|
||
|
|
// Returns the filename of a related item contained with the email. Related items
|
||
|
|
// are typically images and style-sheets embedded within HTML emails.
|
||
|
|
const wchar_t *relatedFilename(int index);
|
||
|
|
|
||
|
|
// Returns the value of a header field (by name) of a related item.
|
||
|
|
bool GetRelatedHeader(int index, const wchar_t *fieldName, CkString &outStr);
|
||
|
|
// Returns the value of a header field (by name) of a related item.
|
||
|
|
const wchar_t *getRelatedHeader(int index, const wchar_t *fieldName);
|
||
|
|
// Returns the value of a header field (by name) of a related item.
|
||
|
|
const wchar_t *relatedHeader(int index, const wchar_t *fieldName);
|
||
|
|
|
||
|
|
// Returns the text with CR line-endings of a related item contained with the
|
||
|
|
// email. Related items are typically images and style-sheets embedded within HTML
|
||
|
|
// emails.
|
||
|
|
bool GetRelatedString(int index, const wchar_t *charset, CkString &outStrData);
|
||
|
|
// Returns the text with CR line-endings of a related item contained with the
|
||
|
|
// email. Related items are typically images and style-sheets embedded within HTML
|
||
|
|
// emails.
|
||
|
|
const wchar_t *getRelatedString(int index, const wchar_t *charset);
|
||
|
|
// Returns the text with CR line-endings of a related item contained with the
|
||
|
|
// email. Related items are typically images and style-sheets embedded within HTML
|
||
|
|
// emails.
|
||
|
|
const wchar_t *relatedString(int index, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Returns the text with CRLF line-endings of a related item contained with the
|
||
|
|
// email. Related items are typically images and style-sheets embedded within HTML
|
||
|
|
// emails.
|
||
|
|
bool GetRelatedStringCrLf(int index, const wchar_t *charset, CkString &outStr);
|
||
|
|
// Returns the text with CRLF line-endings of a related item contained with the
|
||
|
|
// email. Related items are typically images and style-sheets embedded within HTML
|
||
|
|
// emails.
|
||
|
|
const wchar_t *getRelatedStringCrLf(int index, const wchar_t *charset);
|
||
|
|
// Returns the text with CRLF line-endings of a related item contained with the
|
||
|
|
// email. Related items are typically images and style-sheets embedded within HTML
|
||
|
|
// emails.
|
||
|
|
const wchar_t *relatedStringCrLf(int index, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Returns a replacement pattern previously defined for mail-merge operations.
|
||
|
|
bool GetReplacePattern(int index, CkString &outStrPattern);
|
||
|
|
// Returns a replacement pattern previously defined for mail-merge operations.
|
||
|
|
const wchar_t *getReplacePattern(int index);
|
||
|
|
// Returns a replacement pattern previously defined for mail-merge operations.
|
||
|
|
const wchar_t *replacePattern(int index);
|
||
|
|
|
||
|
|
// Returns a replacement string for a previously defined pattern/replacement string
|
||
|
|
// pair. (This is a mail-merge feature.)
|
||
|
|
//
|
||
|
|
// Note: This method was found to not be working correctly and is fixed in Chilkat
|
||
|
|
// v9.5.0.91.
|
||
|
|
//
|
||
|
|
bool GetReplaceString(int index, CkString &outStr);
|
||
|
|
// Returns a replacement string for a previously defined pattern/replacement string
|
||
|
|
// pair. (This is a mail-merge feature.)
|
||
|
|
//
|
||
|
|
// Note: This method was found to not be working correctly and is fixed in Chilkat
|
||
|
|
// v9.5.0.91.
|
||
|
|
//
|
||
|
|
const wchar_t *getReplaceString(int index);
|
||
|
|
// Returns a replacement string for a previously defined pattern/replacement string
|
||
|
|
// pair. (This is a mail-merge feature.)
|
||
|
|
//
|
||
|
|
// Note: This method was found to not be working correctly and is fixed in Chilkat
|
||
|
|
// v9.5.0.91.
|
||
|
|
//
|
||
|
|
const wchar_t *replaceString(int index);
|
||
|
|
|
||
|
|
// Returns a replacement string for a previously defined pattern/replacement string
|
||
|
|
// pair. (This is a mail-merge feature.)
|
||
|
|
bool GetReplaceString2(const wchar_t *pattern, CkString &outStr);
|
||
|
|
// Returns a replacement string for a previously defined pattern/replacement string
|
||
|
|
// pair. (This is a mail-merge feature.)
|
||
|
|
const wchar_t *getReplaceString2(const wchar_t *pattern);
|
||
|
|
// Returns a replacement string for a previously defined pattern/replacement string
|
||
|
|
// pair. (This is a mail-merge feature.)
|
||
|
|
const wchar_t *replaceString2(const wchar_t *pattern);
|
||
|
|
|
||
|
|
// (See the NumReports property.) Returns the body content of the Nth report within
|
||
|
|
// a multipart/report email.
|
||
|
|
//
|
||
|
|
// Multipart/report is a message type that contains data formatted for a mail
|
||
|
|
// server to read. It is split between a text/plain (or some other content/type
|
||
|
|
// easily readable) and a message/delivery-status, which contains the data
|
||
|
|
// formatted for the mail server to read.
|
||
|
|
//
|
||
|
|
// It is defined in RFC 3462
|
||
|
|
//
|
||
|
|
bool GetReport(int index, CkString &outStr);
|
||
|
|
// (See the NumReports property.) Returns the body content of the Nth report within
|
||
|
|
// a multipart/report email.
|
||
|
|
//
|
||
|
|
// Multipart/report is a message type that contains data formatted for a mail
|
||
|
|
// server to read. It is split between a text/plain (or some other content/type
|
||
|
|
// easily readable) and a message/delivery-status, which contains the data
|
||
|
|
// formatted for the mail server to read.
|
||
|
|
//
|
||
|
|
// It is defined in RFC 3462
|
||
|
|
//
|
||
|
|
const wchar_t *getReport(int index);
|
||
|
|
// (See the NumReports property.) Returns the body content of the Nth report within
|
||
|
|
// a multipart/report email.
|
||
|
|
//
|
||
|
|
// Multipart/report is a message type that contains data formatted for a mail
|
||
|
|
// server to read. It is split between a text/plain (or some other content/type
|
||
|
|
// easily readable) and a message/delivery-status, which contains the data
|
||
|
|
// formatted for the mail server to read.
|
||
|
|
//
|
||
|
|
// It is defined in RFC 3462
|
||
|
|
//
|
||
|
|
const wchar_t *report(int index);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications should instead call LastSignerCert to
|
||
|
|
// get the certificate used to sign this email.
|
||
|
|
//
|
||
|
|
// Return the certificate used to digitally sign this email.
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkCertW *GetSignedByCert(void);
|
||
|
|
|
||
|
|
// This method is deprecated. Applications can get the cert chain by calling
|
||
|
|
// LastSignerCert to get the certificate object, and then get the certificate chain
|
||
|
|
// from the certificate object.
|
||
|
|
//
|
||
|
|
// Return the full certificate chain of the certificate used to digitally sign this
|
||
|
|
// email.
|
||
|
|
//
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkCertChainW *GetSignedByCertChain(void);
|
||
|
|
|
||
|
|
// Return the certificate that will be used to digitally sign this email. This is
|
||
|
|
// the cerficate that was previously set by calling the SetSigningCert method.
|
||
|
|
// The caller is responsible for deleting the object returned by this method.
|
||
|
|
CkCertW *GetSigningCert(void);
|
||
|
|
|
||
|
|
// Returns a to recipient's full email address.
|
||
|
|
bool GetTo(int index, CkString &outStr);
|
||
|
|
// Returns a to recipient's full email address.
|
||
|
|
const wchar_t *getTo(int index);
|
||
|
|
// Returns a to recipient's full email address.
|
||
|
|
const wchar_t *to(int index);
|
||
|
|
|
||
|
|
// Returns the Nth To address (only the address part, not the friendly-name part).
|
||
|
|
bool GetToAddr(int index, CkString &outStr);
|
||
|
|
// Returns the Nth To address (only the address part, not the friendly-name part).
|
||
|
|
const wchar_t *getToAddr(int index);
|
||
|
|
// Returns the Nth To address (only the address part, not the friendly-name part).
|
||
|
|
const wchar_t *toAddr(int index);
|
||
|
|
|
||
|
|
// Returns the Nth To name (only the friendly-name part, not the address part).
|
||
|
|
bool GetToName(int index, CkString &outStr);
|
||
|
|
// Returns the Nth To name (only the friendly-name part, not the address part).
|
||
|
|
const wchar_t *getToName(int index);
|
||
|
|
// Returns the Nth To name (only the friendly-name part, not the address part).
|
||
|
|
const wchar_t *toName(int index);
|
||
|
|
|
||
|
|
// Convert the email object to an XML document in memory
|
||
|
|
bool GetXml(CkString &outStrXml);
|
||
|
|
// Convert the email object to an XML document in memory
|
||
|
|
const wchar_t *getXml(void);
|
||
|
|
// Convert the email object to an XML document in memory
|
||
|
|
const wchar_t *xml(void);
|
||
|
|
|
||
|
|
// Returns true if the email has a header field with the specified fieldName with a
|
||
|
|
// value matching valuePattern. Case sensitivity is controlled by caseSensitive. The valuePattern may
|
||
|
|
// include 0 or more asterisk (wildcard) characters which match 0 or more of any
|
||
|
|
// character.
|
||
|
|
bool HasHeaderMatching(const wchar_t *fieldName, const wchar_t *valuePattern, bool caseSensitive);
|
||
|
|
|
||
|
|
// Returns true if the email has an HTML body.
|
||
|
|
bool HasHtmlBody(void);
|
||
|
|
|
||
|
|
// Returns true if the email has a plain-text body.
|
||
|
|
bool HasPlainTextBody(void);
|
||
|
|
|
||
|
|
// Returns true if the email is a multipart/report email.
|
||
|
|
bool IsMultipartReport(void);
|
||
|
|
|
||
|
|
// Returns in cert the certificate used to decrypt this email.
|
||
|
|
bool LastDecryptCert(CkCertW &cert);
|
||
|
|
|
||
|
|
// Returns the Nth certificate in index used to digitally sign this email. Signed
|
||
|
|
// emails are typically signed by a single signer, but it is possible to have
|
||
|
|
// multiple signers. The 1st signer is at index 0.
|
||
|
|
bool LastSignerCert(int index, CkCertW &cert);
|
||
|
|
|
||
|
|
// Extracts domain names from hyperlinks in an HTML email. Lowercase domains are
|
||
|
|
// appended to domains without creating duplicates.
|
||
|
|
bool LinkedDomains(CkStringTableW &domains);
|
||
|
|
|
||
|
|
// Loads a complete email from a .EML file. (EML files are simply RFC822 MIME text
|
||
|
|
// files.)
|
||
|
|
//
|
||
|
|
// Note: This replaces the entire contents of the email object, including the To/CC
|
||
|
|
// recipients.
|
||
|
|
//
|
||
|
|
bool LoadEml(const wchar_t *mimePath);
|
||
|
|
|
||
|
|
// Loads the email object from a completed asynchronous task.
|
||
|
|
bool LoadTaskResult(CkTaskW &task);
|
||
|
|
|
||
|
|
// Loads an email with the contents of an XML email file.
|
||
|
|
//
|
||
|
|
// Note: This replaces the entire contents of the email object, including the To/CC
|
||
|
|
// recipients.
|
||
|
|
//
|
||
|
|
bool LoadXml(const wchar_t *xmlPath);
|
||
|
|
|
||
|
|
// Loads an email from an XML string (previously obtained by calling the GetXml
|
||
|
|
// method). The contents of the calling email object are erased and replaced with
|
||
|
|
// the email contained within the XML string.
|
||
|
|
bool LoadXmlString(const wchar_t *xmlStr);
|
||
|
|
|
||
|
|
// Creates a copy of this email in destEmail.
|
||
|
|
bool MakeCopy(CkEmailW &destEmail);
|
||
|
|
|
||
|
|
// Takes a byte array of multibyte (non-Unicode) data and returns a Unicode
|
||
|
|
// Q-Encoded string.
|
||
|
|
bool QEncodeBytes(CkByteData &inData, const wchar_t *charset, CkString &outEncodedStr);
|
||
|
|
// Takes a byte array of multibyte (non-Unicode) data and returns a Unicode
|
||
|
|
// Q-Encoded string.
|
||
|
|
const wchar_t *qEncodeBytes(CkByteData &inData, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Takes a Unicode string, converts it to the charset specified in the 2nd
|
||
|
|
// parameter, Q-Encodes the converted multibyte data, and returns the encoded
|
||
|
|
// Unicode string.
|
||
|
|
bool QEncodeString(const wchar_t *str, const wchar_t *charset, CkString &outEncodedStr);
|
||
|
|
// Takes a Unicode string, converts it to the charset specified in the 2nd
|
||
|
|
// parameter, Q-Encodes the converted multibyte data, and returns the encoded
|
||
|
|
// Unicode string.
|
||
|
|
const wchar_t *qEncodeString(const wchar_t *str, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Removes the Nth message/rfc822 sub-part of the email. Indexing begins at 0.
|
||
|
|
void RemoveAttachedMessage(int idx);
|
||
|
|
|
||
|
|
// Removes all message/rfc822 sub-parts of the email object.
|
||
|
|
void RemoveAttachedMessages(void);
|
||
|
|
|
||
|
|
// Removes path information from all attachment filenames.
|
||
|
|
void RemoveAttachmentPaths(void);
|
||
|
|
|
||
|
|
// Removes by name all occurrences of a header field.
|
||
|
|
void RemoveHeaderField(const wchar_t *fieldName);
|
||
|
|
|
||
|
|
// Removes the HTML body from the email (if an HTML body exists).
|
||
|
|
void RemoveHtmlAlternative(void);
|
||
|
|
|
||
|
|
// Removes the plain-text body from the email (if a plain-text body exists).
|
||
|
|
void RemovePlainTextAlternative(void);
|
||
|
|
|
||
|
|
// Save all the attachments of an email to files in a directory specified by dirPath.
|
||
|
|
// The OverwriteExisting property controls whether existing files are allowed to be
|
||
|
|
// overwritten.
|
||
|
|
//
|
||
|
|
// Note: Email attachment filenames can be renamed or modified prior to saving. The
|
||
|
|
// number of attachments is available in the NumAttachments property. An
|
||
|
|
// application can loop over the attachments to get the filename for each by
|
||
|
|
// calling GetAttachmentFilename(index). Each attachment's filename can be set by
|
||
|
|
// calling SetAttachmentFilename(index, newFilename).
|
||
|
|
//
|
||
|
|
bool SaveAllAttachments(const wchar_t *dirPath);
|
||
|
|
|
||
|
|
// Saves the Nth email attachment to the directory specified by dirPath. The 1st
|
||
|
|
// attachment is at index 0. The OverwriteExisting property controls whether
|
||
|
|
// existing files are allowed to be overwritten.
|
||
|
|
bool SaveAttachedFile(int index, const wchar_t *dirPath);
|
||
|
|
|
||
|
|
// Convert this email object to EML and save it to a file.
|
||
|
|
bool SaveEml(const wchar_t *emlFilePath);
|
||
|
|
|
||
|
|
// Saves the Nth related item to the directory specified by dirPath. (The 1st related
|
||
|
|
// item is at index 0) Related content items are typically image or style-sheets
|
||
|
|
// embedded within an HTML email. The OverwriteExisting property controls whether
|
||
|
|
// existing files are allowed to be overwritten.
|
||
|
|
bool SaveRelatedItem(int index, const wchar_t *dirPath);
|
||
|
|
|
||
|
|
// Convert this email object to XML and save it to a file.
|
||
|
|
bool SaveXml(const wchar_t *path);
|
||
|
|
|
||
|
|
// Sets the charset attribute of the content-type header field for a specified
|
||
|
|
// attachment. This can be used if the attachment is a text file that contains text
|
||
|
|
// in a non us-ascii charset such as Shift_JIS, iso-8859-2, big5, iso-8859-5, etc.
|
||
|
|
bool SetAttachmentCharset(int index, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Set's an attachment's disposition. The default disposition of an attachment is
|
||
|
|
// attachment . This method is typically called to change the disposition to inline
|
||
|
|
// . The 1st attachment is at index 0.
|
||
|
|
bool SetAttachmentDisposition(int index, const wchar_t *disposition);
|
||
|
|
|
||
|
|
// Renames a email attachment's filename. The 1st attachment is at index 0.
|
||
|
|
bool SetAttachmentFilename(int index, const wchar_t *filename);
|
||
|
|
|
||
|
|
// Sets the main body of the email to binary content of any type. The disposition
|
||
|
|
// can be an empty string, inline , or attachment . If a filename is specified, the
|
||
|
|
// disposition must be non-empty because the filename is an attribute of the
|
||
|
|
// content-disposition header field.
|
||
|
|
bool SetBinaryBody(CkByteData &byteData, const wchar_t *contentType, const wchar_t *disposition, const wchar_t *filename);
|
||
|
|
|
||
|
|
// This function sets the email's main body to binary content. bd contains the
|
||
|
|
// binary data. disposition specifies the disposition and can be an empty string, inline ,
|
||
|
|
// or attachment . If filename is provided, disposition must be specified because filename is an
|
||
|
|
// attribute of the content-disposition header.
|
||
|
|
bool SetBodyBd(CkBinDataW &bd, const wchar_t *contentType, const wchar_t *disposition, const wchar_t *filename);
|
||
|
|
|
||
|
|
// Allows for a certificate to be explicity provided for decryption. When an email
|
||
|
|
// object is loaded via any method, such as LoadEml, SetFromMimeText,
|
||
|
|
// SetFromMimeBytes, etc., security layers (signatures and encryption) are
|
||
|
|
// automatically unwrapped. This method could be called prior to calling a method
|
||
|
|
// that loads the email.
|
||
|
|
bool SetDecryptCert(CkCertW &cert);
|
||
|
|
|
||
|
|
// Allows for a certificate and private key to be explicity specified for
|
||
|
|
// decryption. When an email object is loaded via any method, such as LoadEml,
|
||
|
|
// SetFromMimeText, SetFromMimeBytes, etc., security layers (signatures and
|
||
|
|
// encryption) are automatically unwrapped. Decryption requires a private key. On
|
||
|
|
// Windows-based systems, the private key is often pre-installed and nothing need
|
||
|
|
// be done to provide it because Chilkat will automatically find it and use it.
|
||
|
|
// However, if not on a Windows system, or if the private key was not
|
||
|
|
// pre-installed, then it can be provided by this method, or via the
|
||
|
|
// AddPfxSourceFile / AddPfxSourceData methods.
|
||
|
|
bool SetDecryptCert2(CkCertW &cert, CkPrivateKeyW &key);
|
||
|
|
|
||
|
|
// Sets the Date header field of the email to have the value of the date/time
|
||
|
|
// object provided.
|
||
|
|
bool SetDt(CkDateTimeW &dt);
|
||
|
|
|
||
|
|
// Creates a typical email used to send EDIFACT messages. Does the following:
|
||
|
|
// 1. Sets the email body to the EDIFACT message passed in message.
|
||
|
|
// 2. Sets the Content-Transfer-Encoding to Base64.
|
||
|
|
// 3. Set the Content-Type equal to application/EDIFACT .
|
||
|
|
// 4. Sets the Content-Type header's name attribute to name.
|
||
|
|
// 5. Sets the Content-Disposition equal to attachment .
|
||
|
|
// 6. Sets the Content-Disposition's filename attribute equal to filename.
|
||
|
|
// 7. The EDIFACT message is converted to the charset indicated by charset, and
|
||
|
|
// encoded using Base64 in the email body.
|
||
|
|
// The email's subject, recipients, FROM address, and other headers are left
|
||
|
|
// unmodified.
|
||
|
|
void SetEdifactBody(const wchar_t *message, const wchar_t *name, const wchar_t *filename, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Set the encryption certificate to be used in encryption. Use the CreateCS,
|
||
|
|
// CertStore, and Cert classes to create a Cert object by either locating a
|
||
|
|
// certificate in a certificate store or loading one from a file.
|
||
|
|
bool SetEncryptCert(CkCertW &cert);
|
||
|
|
|
||
|
|
// Loads an email with the MIME stored in a BinData object.
|
||
|
|
//
|
||
|
|
// Note: This replaces the entire contents of the email object, including the To/CC
|
||
|
|
// recipients.
|
||
|
|
//
|
||
|
|
bool SetFromMimeBd(CkBinDataW &bindat);
|
||
|
|
|
||
|
|
// Loads the email object with the mimeBytes. If the email object already contained an
|
||
|
|
// email, it is entirely replaced. The character encoding (such as utf-8 ,
|
||
|
|
// iso-8859-1 , etc.) of the bytes is automatically inferred from the content. If
|
||
|
|
// for some reason it is not possible to determine the character encoding, the
|
||
|
|
// SetFromMimeBytes2 method may be called to explicitly specify the charset.
|
||
|
|
bool SetFromMimeBytes(CkByteData &mimeBytes);
|
||
|
|
|
||
|
|
// Loads the email object with the mimeBytes. If the email object already contained an
|
||
|
|
// email, it is entirely replaced.
|
||
|
|
//
|
||
|
|
// The charset specifies the character encoding of the MIME bytes (such as utf-8 ,
|
||
|
|
// iso-8859-1 , etc.).
|
||
|
|
//
|
||
|
|
bool SetFromMimeBytes2(CkByteData &mimeBytes, const wchar_t *charset);
|
||
|
|
|
||
|
|
// Loads an email with the MIME stored in a StringBuilder object.
|
||
|
|
//
|
||
|
|
// Note: This replaces the entire contents of the email object, including the To/CC
|
||
|
|
// recipients.
|
||
|
|
//
|
||
|
|
bool SetFromMimeSb(CkStringBuilderW &sb);
|
||
|
|
|
||
|
|
// Loads an email with the contents of a .eml (i.e. MIME) contained in a string.
|
||
|
|
//
|
||
|
|
// Note: This replaces the entire contents of the email object, including the To/CC
|
||
|
|
// recipients.
|
||
|
|
//
|
||
|
|
bool SetFromMimeText(const wchar_t *mimeText);
|
||
|
|
|
||
|
|
// Loads an email from an XML string.
|
||
|
|
//
|
||
|
|
// Note: This replaces the entire contents of the email object, including the To/CC
|
||
|
|
// recipients.
|
||
|
|
//
|
||
|
|
bool SetFromXmlText(const wchar_t *xmlStr);
|
||
|
|
|
||
|
|
// Sets the HTML body of an email.
|
||
|
|
void SetHtmlBody(const wchar_t *html);
|
||
|
|
|
||
|
|
// Sets the HTML email body from a byte array containing character data in the
|
||
|
|
// specified character set. This method also updates the email content-type header
|
||
|
|
// to properly reflect the content type of the body.
|
||
|
|
bool SetMbHtmlBody(const wchar_t *charset, CkByteData &inData);
|
||
|
|
|
||
|
|
// Sets the plain-text email body from a byte array containing character data in
|
||
|
|
// the specified character set. This method also updates the email content-type
|
||
|
|
// header to properly reflect the content type of the body.
|
||
|
|
bool SetMbPlainTextBody(const wchar_t *charset, CkByteData &inData);
|
||
|
|
|
||
|
|
// Sets the filename for a related item within the email.
|
||
|
|
bool SetRelatedFilename(int index, const wchar_t *path);
|
||
|
|
|
||
|
|
// Create a pattern/replacement-text pair for mail-merge. When the email is sent
|
||
|
|
// via the MailMan's SendEmail method, or any other mail-sending method, the
|
||
|
|
// patterns are replaced with the replacement strings during the sending process.
|
||
|
|
// To define multiple replacement patterns, simply call SetReplacePattern once per
|
||
|
|
// pattern/replacement string. (Note: The MailMan's RenderToMime method will also
|
||
|
|
// do pattern replacements. Methods such as SaveEml or GetMime do not replace
|
||
|
|
// patterns.)
|
||
|
|
//
|
||
|
|
// Note: Replacement patterns may be placed in any header field, and in both HTML
|
||
|
|
// and plain-text email bodies.
|
||
|
|
//
|
||
|
|
bool SetReplacePattern(const wchar_t *pattern, const wchar_t *replaceString);
|
||
|
|
|
||
|
|
// Set the certificate to be used in creating a digital signature. Use the
|
||
|
|
// CreateCS, CertStore, and Cert classes to create a Cert object by either locating
|
||
|
|
// a certificate in a certificate store or loading one from a file.
|
||
|
|
bool SetSigningCert(CkCertW &cert);
|
||
|
|
|
||
|
|
// Explicitly sets the certificate and private key to be used for sending digitally
|
||
|
|
// signed email. If the certificate's private key is already installed on the
|
||
|
|
// computer, then one may simply call SetSigningCert because the Chilkat component
|
||
|
|
// will automatically locate and use the corresponding private key (stored in the
|
||
|
|
// Windows Protected Store). In most cases, if the digital certificate is already
|
||
|
|
// installed w/ private key on the computer, it is not necessary to explicitly set
|
||
|
|
// the signing certificate at all. The Chilkat component will automatically locate
|
||
|
|
// and use the certificate containing the FROM email address (from the
|
||
|
|
// registry-based certificate store where it was installed).
|
||
|
|
bool SetSigningCert2(CkCertW &cert, CkPrivateKeyW &key);
|
||
|
|
|
||
|
|
// Sets the body of the email and also sets the Content-Type header field of the
|
||
|
|
// contentType. If the email is already multipart/alternative, an additional alternative
|
||
|
|
// with the indicated Content-Type will be added. If an alternative with the same
|
||
|
|
// Content-Type already exists, it is replaced.
|
||
|
|
void SetTextBody(const wchar_t *bodyText, const wchar_t *contentType);
|
||
|
|
|
||
|
|
// Creates a new Delivery Status Notification (DSN) email in the format specified
|
||
|
|
// by RFC 3464. The DSN email is generated in dsnEmail.
|
||
|
|
bool ToDsn(const wchar_t *explanation, const wchar_t *statusFields, bool headerOnly, CkEmailW &dsnEmail);
|
||
|
|
|
||
|
|
// Creates inline forward of this email in forward.
|
||
|
|
bool ToForward(CkEmailW &forward);
|
||
|
|
|
||
|
|
// Creates a new MDN (Message Disposition Notification) email in message having the
|
||
|
|
// format as specified in RFC 3798.
|
||
|
|
bool ToMdn(const wchar_t *message, const wchar_t *statusFields, bool headerOnly, CkEmailW &mdn);
|
||
|
|
|
||
|
|
// Generates a reply email in reply with updated header and body fields to enable
|
||
|
|
// sending as a reply. Note: Attachments are excluded from the reply, but attached
|
||
|
|
// messages are included. To exclude attached messages, call RemoveAttachedMessages
|
||
|
|
// on the reply email object.
|
||
|
|
bool ToReply(CkEmailW &reply);
|
||
|
|
|
||
|
|
// True if the caller email has a UIDL that equals the email passed in the
|
||
|
|
// argument.
|
||
|
|
bool UidlEquals(CkEmailW &e);
|
||
|
|
|
||
|
|
// Unpacks an HTML email into an HTML file and related files (images and style
|
||
|
|
// sheets). The links within the HTML are updated to point to the files unpacked
|
||
|
|
// and saved to disk.
|
||
|
|
//
|
||
|
|
// The unpackDir is the absolute or relative directory path where the HTML file should
|
||
|
|
// be written. The partsSubdir is the subdirectory beneath unpackDir where images and style
|
||
|
|
// sheets should be written. If partsSubdir does not already exist, it is automatically
|
||
|
|
// created.
|
||
|
|
//
|
||
|
|
// For example, if unpackDir = C:/test , htmlFilename = myEmail.html , and partsSubdir = images , then
|
||
|
|
// C:/test/myEmail.html is created, and the related files are written into
|
||
|
|
// C:/test/images.
|
||
|
|
//
|
||
|
|
// Note: The UnpackHtml method extracts images that are actually contained within
|
||
|
|
// the email itself. If the HTML contains an IMG tag that just links to an image on
|
||
|
|
// the web (but the image data is not contained locally within the email), then the
|
||
|
|
// image is not unpacked (because it would need to be downloaded from the web).
|
||
|
|
//
|
||
|
|
bool UnpackHtml(const wchar_t *unpackDir, const wchar_t *htmlFilename, const wchar_t *partsSubdir);
|
||
|
|
|
||
|
|
// Unobfuscates emails by undoing what spammers do to obfuscate email. It removes
|
||
|
|
// comments from HTML bodies and unobfuscates hyperlinked URLs.
|
||
|
|
void UnSpamify(void);
|
||
|
|
|
||
|
|
// Unzips and replaces any Zip file attachments with the expanded contents. As an
|
||
|
|
// example, if an email contained a single Zip file containing 3 GIF image files as
|
||
|
|
// an attachment, then after calling this method the email would contain 3 GIF file
|
||
|
|
// attachments, and the Zip attachment would be gone.If an email contains multiple
|
||
|
|
// Zip file attachments, each Zip is expanded and replaced with the contents.
|
||
|
|
bool UnzipAttachments(void);
|
||
|
|
|
||
|
|
// Adds an XML certificate vault to the object's internal list of sources to be
|
||
|
|
// searched for certificates and private keys when encrypting/decrypting or
|
||
|
|
// signing/verifying. Unlike the AddPfxSourceData and AddPfxSourceFile methods,
|
||
|
|
// only a single XML certificate vault can be used. If UseCertVault is called
|
||
|
|
// multiple times, only the last certificate vault will be used, as each call to
|
||
|
|
// UseCertVault will replace the certificate vault provided in previous calls.
|
||
|
|
bool UseCertVault(CkXmlCertVaultW &vault);
|
||
|
|
|
||
|
|
// Replaces all the attachments of an email with a single Zip file attachment
|
||
|
|
// having the filename specified.
|
||
|
|
bool ZipAttachments(const wchar_t *zipFilename);
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// END PUBLIC INTERFACE
|
||
|
|
|
||
|
|
|
||
|
|
};
|
||
|
|
#if !defined(__sun__) && !defined(__sun)
|
||
|
|
#pragma pack (pop)
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif
|