Sample code for 30+ languages & platforms
React Native Requires Chilkat v11.0.0+

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

React Native
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!');
}