@nativescript/email

Email plugin for your NativeScript app

Usage no npm install needed!

<script type="module">
  import nativescriptEmail from 'https://cdn.skypack.dev/@nativescript/email';
</script>

README

NativeScript Email

NPM version Downloads Twitter Follow

You can use this plugin to compose an e-mail, have the user edit the draft manually, and send it.

Note that 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.

ns plugin add @nativescript/email

Usage

API

To use this plugin you must first require/import it:

TypeScript

import * as email from "@nativescript/email";
// or
import { compose } from "@nativescript/email";
// or even
import { compose as composeEmail } from "@nativescript/email";

JavaScript

var email = require("@nativescript/email");

available

TypeScript

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

JavaScript

  email.available().then(function(avail) {
      console.log("Email available? " + avail);
  })

compose

JavaScript

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

  email.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);
    });

Full attachment support has been added to 1.3.0 per the example above.

Since 1.4.0 the promise will be rejected in case a file can't be found.

Usage with Angular

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

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

License

Apache License Version 2.0