|

Software Components Home
Create Forwarding Email by Cloning and Modifying an Original Email Object
Back
The Chilkat email.CreateForward method can be too inflexible in many cases. However, there is nothing that it does that cannot be accomplished by cloning an email and modifying the body and header fields. This is an example:
Chilkat.MailMan mailman = new Chilkat.MailMan();
mailman.UnlockComponent("anything for 30-day trial");
// Create a simple forwarded message, but instead of
// using CreateForward, do it manually.
Chilkat.Email email = new Chilkat.Email();
// Load the email to be forwarded.
email.LoadEml("test0.eml");
// Build the forward in a new Email instance.
// Clone the original email, then modify the headers
// and body.
Chilkat.Email forward = email.Clone();
string hdrTo = email.GetHeaderField("to");
string hdrCc = email.GetHeaderField("cc");
string hdrFrom = email.GetHeaderField("from");
string hdrDate = email.GetHeaderField("date");
string subject = email.GetHeaderField("subject");
if (email.HasPlainTextBody())
{
string body = email.GetPlainTextBody();
string newBody = "-----Original Message-----\r\n" +
"From: " + hdrFrom + "\r\n" +
"Sent: " + hdrDate + "\r\n" +
"To: " + hdrTo + "\r\n";
if (hdrCc.Length > 0)
{
newBody = newBody + "CC: " + hdrCc + "\r\n";
}
newBody = newBody + "Subject: " + subject + "\r\n";
newBody = newBody + body;
forward.Body = newBody;
}
else
{
string body = email.GetHtmlBody();
// Do something similar to what is above, but you'll
// need to insert after the opening <body> tag in
// the original HTML body...
}
forward.Subject = "FW: " + subject;
forward.ClearTo();
forward.ClearCC();
forward.RemoveHeaderField("x-sender");
forward.RemoveHeaderField("x-rcpt-to");
forward.RemoveHeaderField("x-uidl");
forward.RemoveHeaderField("status");
forward.RemoveHeaderField("received");
forward.RemoveHeaderField("return-path");
forward.RemoveHeaderField("From");
forward.RemoveHeaderField("Reply-To");
// Create a new email to get the current date/time:
Chilkat.Email em = new Chilkat.Email();
forward.AddHeaderField("date",em.GetHeaderField("date"));
// Now add recipients to the forward and send...
|