Skip to content

Latest commit

 

History

History
153 lines (114 loc) · 6.95 KB

email.md

File metadata and controls

153 lines (114 loc) · 6.95 KB
title link
Email

@nativescript/Email

Contents

Intro

A plugin to compose an e-mail, have the user edit the draft manually and send it.

:::tip Note

This plugin depends on the default mail app. If you want a fallback to a third party client app like Gmail or Outlook, then check for availability, and if not available use a solution like the Social Share plugin.

:::

Installation

To install the plugin, run the following command in the root directory of your project:

npm install @nativescript/email

Use @nativescript/email

Check for availability

To check if the device has the Mail app installed, call the available method.

import { available() } from '@nativescript/email';

available().then((avail: boolean) => {
	console.log('Email available? ' + avail);
});

Compose an email

To compose an email, use the compose method.

import { compose } from '@nativescript/email'

// first create a File object
import { knownFolders } from '@nativescript/core'
var appPath = knownFolders.currentApp().path
var logoPath = appPath + '/res/telerik-logo.png'

compose({
  subject: 'Yo',
  body: 'Hello <strong>dude</strong> :)',
  to: ['eddyverbruggen@gmail.com', 'to@person2.com'],
  cc: ['ccperson@somewhere.com'],
  bcc: ['eddy@combidesk.com', 'eddy@x-services.nl'],
  attachments: [
    {
      fileName: 'arrow1.png',
      path: 'base64://iVBORw0KGgoAAAANSUhEUgAAABYAAAAoCAYAAAD6xArmAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAHGlET1QAAAACAAAAAAAAABQAAAAoAAAAFAAAABQAAAB5EsHiAAAAAEVJREFUSA1iYKAimDhxYjwIU9FIBgaQgZMmTfoPwlOmTJGniuHIhlLNxaOGwiNqNEypkwlGk9RokoIUfaM5ijo5Clh9AAAAAP//ksWFvgAAAEFJREFUY5g4cWL8pEmT/oMwiM1ATTBqONbQHA2W0WDBGgJYBUdTy2iwYA0BrILDI7VMmTJFHqv3yBUEBQsIg/QDAJNpcv6v+k1ZAAAAAElFTkSuQmCC',
      mimeType: 'image/png'
    },
    {
      fileName: 'telerik-logo.png',
      path: logoPath,
      mimeType: 'image/png'
    }
  ]
}).then(
  function () {
    console.log('Email composer closed')
  },
  function (err) {
    console.log('Error: ' + err)
  }
)

API

Method(s)

Name Return Type Description
available() Promise<boolean> Checks for availability of a mail app.
compose(options: ComposeOptions) Promise<boolean> Composes and sends a ComposeOptions email.

Usage with Angular

Check out this tutorial (YouTube) to learn how to use this plugin in a NativeScript-Angular app.

API

Functions

Function Return Type Description
available() Promise<boolean> Checks for availability of a mail app.
compose(options: ComposeOptions) Promise<boolean> Composes and sends a ComposeOptions email.

ComposeOptions

Name Type Description
subject string Optional: The subject of the email.
body string Optional: The body of the email. The plugin will automatically handle plain and html email content.
body string Optional: The body of the email. The plugin will automatically handle plain and html email content.
to string[] Optional: An array of email addresses of the direct recipients. On Android only the first item in the array is used.
cc string[] Optional: An array of email addresses of the cc recipients.
bcc string[] Optional: An array of email addresses of the bcc recipients.
attachments Array<Attachment> The files to be attached to the email.
iosViewController any Optional: (iOS-only) iOS View Controller to open compose from.

Attachment

Name Type Description
fileName string The name used for the attachment.
Example: fileName: 'Cute-Kitten.png'
path string The to the file to be attached.
mimeType string (iOS-only)Used to help the iOS device figure out how to send the file.Example:mimeType: 'image/png'

Known issues

  • On iOS, you can't use the simulator to test the plugin because of an iOS limitation. To prevent a crash, this plugin returns false when available is invoked on the iOS simulator.

License

Apache License Version 2.0