Sample code for 30+ languages & platforms
Dart

Send Email with a vCard

Demonstrates how to create a simple email, attach a vcard, and send it.

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 and receiving email.
  final mailman = CkMailMan();

  // Set the SMTP server.
  mailman.smtpHost = 'smtp.chilkatsoft.com';

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

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

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

  // A vCard is an email attachment having a Content-Type = "text/x-vcard".
  // Call AddStringAttachment to add a vcard from an in-memory string.
  // The filename should have a ".vcf" file extension.  Chilkat will automatically
  // recognize it and set the content-type to "text/x-vcard";

  // Your application is responsible for providing the vcard formatted string.  For example:
  // See http://en.wikipedia.org/wiki/VCard
  // 
  // begin:vcard
  // fn:Matt Smith
  // n:Smith;Matt
  // org:Chilkat Software, Inc.
  // tel;work:630-784-9670
  // url:http://www.chilkatsoft.com
  // version:2.1
  // end:vcard

  final vcard = 'begin:vcard ...';
  try {
    email.addStringAttachment('admin.vcf', vcard);
  } 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;
  }

  // Some SMTP servers do not actually send the email until 
  // the connection is closed.  In these cases, it is necessary to
  // call CloseSmtpConnection for the mail to be  sent.  
  // Most SMTP servers send the email immediately, and it is 
  // not required to close the connection.  We'll close it here
  // for the example:
  try {
    mailman.closeSmtpConnection();
  } on ChilkatException {
    print('Connection to SMTP server not closed cleanly.');
  }

  print('Mail with vCard Sent!');
}