JSPM

js-gmail-api

1.0.1
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • 0
    • Score
      100M100P100Q20214F
    • License MIT

    Javascript functions to make easy the integration with the gmail api from google.

    Package Exports

    • js-gmail-api
    • js-gmail-api/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 (js-gmail-api) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    js-gmail-api

    Javascript functions to make easy the integration with the gmail api from google.

    Table of Contents

    Installing

    Using npm:

    $ npm install js-gmail-api

    Using yarn:

    $ yarn add js-gmail-api

    Import

    Once the package is installed, you can import the library using import or require approach:

    import jsGmailAPI from "js-gmail-api";

    OR:

    const jsGmailAPI = require("js-gmail-api");

    Functions

    Note: Every functions takes gmail as the first parameter.

    import { google } from "googleapis";
    
    const auth = await authenticate({
      scopes: SCOPES,
      keyfilePath: CREDENTIALS_PATH,
    });
    
    async function main(auth) {
      const gmail = google.gmail({ version: "v1", auth });
      /** ... */
    }
    
    main(auth);
    getAllEmails

    getAllEmails returns an array of all emails in your inbox, in an object containing the id of each email.

    JavaScript

    import { getAllEmails } from "js-gmail-api";
    
    async function main(auth) {
      /** ... */
    
      const emails = await getAllEmails(gmail);
      emails.forEach((email) => console.log(email.id));
    }

    TypeScript

    import { getAllEmails } from "js-gmail-api";
    import type { Messages } from "js-gmail-api";
    
    async function main(auth) {
      /** ... */
    
      const emails: Messages = await getAllEmails(gmail);
      emails.forEach((email) => console.log(email.id));
    }

    getUnreadEmails

    getUnreadEmails has the same return as getAllEmails but containing only unread emails.

    JavaScript

    import { getUnreadEmails } from "js-gmail-api";
    
    async function main(auth) {
      /** ... */
    
      const emails = await getUnreadEmails(gmail);
      emails.forEach((email) => console.log(email.id));
    }

    TypeScript

    import { getUnreadEmails } from "js-gmail-api";
    import type { Messages, Message } from "js-gmail-api";
    
    async function main(auth) {
      /** ... */
    
      const emails: Messages = await getUnreadEmails(gmail);
      emails.forEach((email: Message) => console.log(email.id));
    }

    getMessageById

    getMessageById returns an array of object containing .

    JavaScript

    import { getAllEmails } from "js-gmail-api";
    
    async function main(auth) {
      /** ... */
    
      const emails = await getAllEmails(gmail);
      emails.forEach((email) => console.log(email.id));
    }

    TypeScript

    import { getAllEmails } from "js-gmail-api";
    import type { Messages } from "js-gmail-api";
    
    async function main(auth) {
      /** ... */
    
      const emails: Messages = await getAllEmails(gmail);
      emails.forEach((email) => console.log(email.id));
    }

    getFormattedMessageById

    getMessageById returns an array of object containing .

    JavaScript

    import { getAllEmails } from "js-gmail-api";
    
    async function main(auth) {
      /** ... */
    
      const emails = await getAllEmails(gmail);
      emails.forEach(async (email) => {
        const message = await getFormattedMessageById(gmail, email.id);
        console.log(message);
      });
    }

    TypeScript

    import { getAllEmails, getFormattedMessageById } from "js-gmail-api";
    import type { Messages, FormattedMessage } from "js-gmail-api";
    
    async function main(auth) {
      /** ... */
    
      const emails: Messages = await getAllEmails(gmail);
      emails.forEach(async (email) => {
        const message: FormattedMessage = await getFormattedMessageById(
          gmail,
          email.id
        );
        console.log(message);
      });
    }

    getAllEmailsFromAddress

    Example

    If you are not familiarized with the gmail api, see the gmail api quickstart to get the initialization and authentication snippet.

    import {
      getUserInfo,
      getFormattedMessageById,
      getUnreadEmails,
      markAsRead,
    } from "js-gmail-api";
    import { google } from "googleapis";
    
    const auth = await authenticate({
      scopes: SCOPES,
      keyfilePath: CREDENTIALS_PATH,
    });
    
    const gmail = google.gmail({ version: "v1", auth }); // returns an object
    
    const user = await getUserInfo(gmail); // { emailAddress,  messagesTotal }
    console.log(">_ You are logged as", user.emailAddress);
    
    const unreadEmails = await getUnreadEmails(gmail); // [{ id }]
    
    // Check if there is any unread email
    if (unreadEmails && unreadEmails.length > 0) {
      console.log(">_ There is no unread emails in your inbox.");
    } else {
      console.log(`>_ There is ${unreadEmails.length} unread emails in your inbox`);
    }
    
    // Print all unread emails and mark as read
    unreadEmails.forEach((email) => {
      getFormattedMessageById(gmail, email.id)
        .then((res) => res.data)
        .then((message) => {
          console.log(message); // message: { from, body }
          markAsRead(gmail, email.id);
        })
        .catch(console.error);
    });