Sample code for 30+ languages & platforms
Dart

Send Email With Attachments

See more SMTP Examples

Demonstrates how to send an email with attachments.

Chilkat Dart Downloads

Dart
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.

  // The mailman object is used for sending (SMTP) and receiving (POP3) email.
  final mailman = CkMailMan();

  // Set the SMTP server.
  mailman.smtpHost = 'smtp.my-tls-mail-server.com';

  // Set the SMTP login/password (if required)
  mailman.smtpUsername = 'MY_SMTP_USERNAME';
  mailman.smtpPassword = 'MY_SMTP_PASSWORD';

  // Connect to SMTP port 465 using TLS.
  mailman.smtpSsl = true;
  mailman.smtpPort = 465;

  // Create a new email object
  final email = CkEmail();

  email.subject = 'This is a test';
  email.body = 'This is a test';
  email.from = 'Chilkat Support <support@chilkatsoft.com>';
  email.addTo('Chilkat Admin', 'admin@chilkatsoft.com');
  // To add more recipients, call AddTo, AddCC, or AddBcc once per recipient.

  // Add some attachments.
  // The AddFileAttachment method returns the value of the content-type it chose for the attachment.
  String contentType;
  try {
    contentType = email.addFileAttachment('qa_data/jpg/starfish.jpg');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  try {
    contentType = email.addFileAttachment('qa_data/pdf/fishing.pdf');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Call SendEmail to connect to the SMTP server and send.
  // The connection (i.e. session) to the SMTP server remains
  // open so that subsequent SendEmail calls may use the
  // same connection.  
  try {
    mailman.sendEmail(email);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  try {
    mailman.closeSmtpConnection();
  } on ChilkatException {
    print('Connection to SMTP server not closed cleanly.');
  }

  print('Mail with attachments sent!');
}