JSPM

@elara-services/mailer

2.0.5
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 11
  • Score
    100M100P100Q38291F
  • License ISC

An easy to use package to send emails or SMS messages via a Gmail account.

Package Exports

  • @elara-services/mailer
  • @elara-services/mailer/dist/src/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@elara-services/mailer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Welcome to the @elara-services/mailer package!

This package allows you to send an SMS message or email via a Gmail account!

Getting Started

  • You need to get the clientId, clientSecret and refreshToken from your Google Cloud Platform account: Guide here
  • MAKE SURE TO ENABLE THE GMAIL API SERVICE ON YOUR GOOGLE CLOUD ACCOUNT!
const { Mailer } = require("@elara-services/mailer");
const mail = new Mailer("example@gmail.com", {
    username: `Elara Services: Mailer`, // Your custom name for who sent the email (NOTE: It will show your gmail account to the user you send stuff to!)
    clientId: "Your google apis client ID",
    clientSecret: "Your google apis client secret",
    refreshToken: "Your gmail refresh token",
});

Send SMS:

mail.phone("PHONE_NUMBER", "Text message here");
// By default: It will use 'us' as the region 
// By default: it will go through all of the carriers/providers to find the correct one to send it to if you don't provide a carrier when using the 'phone' function!

Send Email(s):

mail.email("boop@example.com", {
    text: `Boop!`, // Optional
    subject: `Henlo!`, // Optional 
    html: `<html><body><h1>Beep!</h1></body></html>`, // Optional 
});
// NOTE: "text" or "html" is required! (one or the other has to be provided in order to work properly)

// Send the same info to multiple emails: 
mail.email([
    "foo@example.com",
    "bar@example.com",
    "...etc"
], {
    text: `Boop!`, // Optional
    subject: `Henlo!`, // Optional 
    html: `<html><body><h1>Beep!</h1></body></html>`, // Optional 
});

Server API

Getting Started

const { Server } = require("@elara-services/mailer");
const server = new Server({
    email: "your_gmail_account@gmail.com",
    options: {
        username: "Elara Services: Mailer",
        clientId: "your_client_id",
        clientSecret: "your_client_secret",
        refreshToken: "your_refresh_token",
    }
}, "API_KEY_HERE", 2020);
// "API_KEY_HERE" make sure to make the key secure! 
// Replace 2020 with whatever you want the API's port number to be! 
server.start(); // Make the server start listening for requests. 

Authorization:

  1. You need the Authorization header for all routes. (If you have the API key provided)

Send Endpoints:

Route: /email

Body:

{
    "email": "xxx",
    "subject": "Email Subject (OPTIONAL)",
    "text": "Text for the email",
    "html": "HTML code for the email (Use 'html' or 'text')"
}

Route: /sms

Body: json { "phone": "xxx", "text": "Text for the message" }

Verification Endpoints:

Route: /verify/sms

Body:

{
    "phone": "123456789",
    "codeLength": 20, // Verification code length. (OPTIONAL, DEFAULT: 15)
}

Route: /verify/email

Body:

{
    "email": "xxxx",
    "codeLength": 20, // Verification code length. (OPTIONAL, DEFAULT: 15)
}

Verification Responses:

Success:

{
    "status": true,
    "code": "xxx"
}

Fail:

{
    "status": false,
    "message": "xxx"
}