Dart Requires Chilkat v11.0.0+
Dart
Forward an Email using CreateForward
See more Email Object Examples
Reads an email from an IMAP server, creates a forward version of the email using the CreateForward method, and sends the email to another recipient.Chilkat Dart Downloads
import 'package:chilkat/chilkat.dart';
void main() {
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// Read the 1st (most recent) email in an Inbox.
final imap = CkImap();
// Connect to an IMAP server.
imap.ssl = true;
imap.port = 993;
try {
imap.connect('imap.example.com');
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
// Login
try {
imap.login('myLogin', 'myPassword');
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
// Select an IMAP mailbox
try {
imap.selectMailbox('Inbox');
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
final numEmails = imap.numMessages;
// Fetch the email at the last sequence number.
// (We are assuming the Inbox has at least 1 email)
final email = CkEmail();
try {
imap.fetchEmail(false, numEmails, false, email);
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
// Disconnect from the IMAP server.
imap.disconnect();
print(email.subject);
final eForward = CkEmail();
try {
email.toForward(eForward);
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
// The eForward email has no To or CC recipients yet.
// Add one or more..
eForward.addTo('Joe', 'joe@example.com');
// We also need to specify the From name/address.
eForward.fromAddress = 'matt@someMailServer.com';
eForward.fromName = 'Matt';
// If we wish to add text at the start of the email body:
final sbHtmlBody = CkStringBuilder();
if (eForward.hasHtmlBody()) {
sbHtmlBody.append(eForward.getHtmlBody());
sbHtmlBody.prepend('<p>Hello, this is an email I\'m forwarding to you...</p>');
eForward.setHtmlBody(sbHtmlBody.getAsString());
}
final sbPtBody = CkStringBuilder();
if (eForward.hasPlainTextBody()) {
sbPtBody.append(eForward.getPlainTextBody());
sbPtBody.prepend('Hello, this is an email I\'m forwarding to you...\r\n\r\n');
eForward.setTextBody(sbPtBody.getAsString(), 'text/plain');
}
// We could save the .eml, then double-click on it to view in our mail program, such as Outlook or Thunderbird..
eForward.saveEml('qa_output/forward.eml');
// We could send (forward) the email..
final mailman = CkMailMan();
mailman.smtpHost = 'smtp.example.com';
mailman.smtpUsername = 'myLogin';
mailman.smtpPassword = 'myPassword';
mailman.smtpPort = 587;
mailman.startTLS = true;
try {
mailman.sendEmail(eForward);
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
try {
mailman.closeSmtpConnection();
} on ChilkatException {
print('Connection to SMTP server not closed cleanly.');
}
print('Mail Sent!');
}