React Native Requires Chilkat v11.0.0+
React Native
Forward by Attaching the Existing Email to a New Email
See more Email Object Examples
Demonstrates how to forward an email by attaching the email to a new email.This example reads an email from an IMAP server, attaches the email to a new email, and sends the new email.
Chilkat React Native Downloads
import { Email, Imap, MailMan } from '@chilkat/react-native'
async function chilkatExample() {
// 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.
const imap = new Imap();
// Connect to an IMAP server.
imap.ssl = true;
imap.port = 993;
try {
await imap.connectAsync('imap.example.com');
} catch {
console.log(imap.lastErrorText);
return;
}
// Login
try {
await imap.loginAsync('myLogin', 'myPassword');
} catch {
console.log(imap.lastErrorText);
return;
}
// Select an IMAP mailbox
try {
await imap.selectMailboxAsync('Inbox');
} catch {
console.log(imap.lastErrorText);
return;
}
const numEmails = imap.numMessages;
// Fetch the email at the last sequence number.
// (We are assuming the Inbox has at least 1 email)
const email = new Email();
try {
await imap.fetchEmailAsync(false, numEmails, false, email);
} catch {
console.log(imap.lastErrorText);
return;
}
// Disconnect from the IMAP server.
await imap.disconnectAsync();
console.log(email.subject);
// Create a new email. The email we just read will be attached to this email.
const eForward = new Email();
eForward.addTo('Joe', 'joe@example.com');
eForward.fromAddress = 'matt@somewhere.com';
eForward.fromName = 'Matt';
eForward.subject = 'This is an email with another email attached.';
eForward.setHtmlBody('<p>Hello, this is an email I\'m forwarding to you. See the attached email.</p>');
// Attach the email.
eForward.attachEmail(email);
// 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..
const mailman = new MailMan();
mailman.smtpHost = 'smtp.example.com';
mailman.smtpUsername = 'myLogin';
mailman.smtpPassword = 'myPassword';
mailman.smtpPort = 587;
mailman.startTLS = true;
try {
await mailman.sendEmailAsync(eForward);
} catch {
console.log(mailman.lastErrorText);
return;
}
try {
await mailman.closeSmtpConnectionAsync();
} catch {
console.log('Connection to SMTP server not closed cleanly.');
}
console.log('Mail Sent!');
}