GithubHelp home page GithubHelp logo

raybb / easy-gmail-scheduler Goto Github PK

View Code? Open in Web Editor NEW
69.0 12.0 18.0 445 KB

:mailbox: Easily schedule Gmail messages. No third parties, local servers, or labels.

License: MIT License

JavaScript 75.59% HTML 18.27% CSS 6.14%
google-apps-script gmail productivity

easy-gmail-scheduler's Introduction

Easy Gmail Scheduler

Update Jan 2023: Since Google released the ability to scheduled messages a few years ago I'm archiving this project. It should still work though.

Responsive Gmail scheduler built with Bootstrap 3 and running on Google Apps Scripts.

Developed and designed by Raybb.

screenshot example

Demo

Check it out:

  • live (dummy data, no authorization)
  • Unfortunately, Google has removed the ability for my demo to send you emails so you must follow setup instrucitons below to use it now.

Features

  • Schedule unlimited emails
  • Automatically loads drafts
  • Email sent in case of error
  • No 3rd party servers
  • Responsive and mobile friendly layout
  • Lightweight (only 160KB)

Future Features

  • Welcome email
  • Add favicon
  • Offline mode
  • Render with React and JSX
    • Visual warning if scheduled email isn't found in drafts

Known Issues

  • When embedded in an iframe page must first start at 101% height and then be shrunken to allow scrolling.

Limitations

  • Regular Gmail accounts are limited to 500 emails per day. More info
  • Please see Usage Limits for more information.

Installation

  1. Visit Google Drive
  2. Click New > More > Google Apps Script
    • Copy backend/gmail.js to the main code.gs file
  3. Click File > New > Html file
    • Name it index.html and copy frontend/index.html into it
  4. Authenticate Script
    • Instructions here. Only the owner is required to do this.
  5. Click Publish > Deploy as web app
    • Execute the app as: "User accessing the web app"
    • Who has acces to the app: "Anyone"
    • Click Deploy
    • Copy link and enjoy! :)

Inspiration

For years I've wanted to be able to send emails later for various reasons. Sometimes to get at the top of their inbox when they'll be in the office. Sometimes to just make sure an email is sent in the morning but gives me times to think on it but not worry about sending it.

The main solutions I found at the time, in 2016, were Right Inbox and Boomerang. Both had free tiers to send a few emails but required giving a third-party access to your email.

I stumbled upon Google Apps Scripts and realized their APIs could do just what I needed. It didn't take long until I bumped into the Gmail scheduler by labnol.org. I now knew it was possible but really didn't like the idea of having to open a spreadsheet to schedule the emails. I knew it was possible to make a simpler version of their script with a nice web interface so that's what I did. Big thanks to labnol.org for their original work. I did end up using their function for sending drafts since it was already well made.

Authorization

In order to send drafts that are part of threads, we utilize the GMail API. To use this, you must enable that API both in the Scripts project and in the Google Cloud Console.

First, enable the Gmail API in the scripts project:

Auth menu in Scripts

Gmail API to On

Next, Enable the Gmail API in the Google Cloud Console. Click the link at the bottom of the window in the Advanced Google Services. In the search box, type GMail and click on the Gmail API below it.

Gmail API on Google Cloud Console

Click enable to turn on the Gmail Services.

Enable Gmail API on Google Cloud Console

Dependencies

How can I support developers?

  • Star our GitHub repo โญ
  • Create pull requests, submit bugs, suggest new features or documentation updates ๐Ÿ”ง

License

MIT license.

easy-gmail-scheduler's People

Contributors

jcricket avatar raybb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

easy-gmail-scheduler's Issues

Drafts unable to be sent

I upgraded the latest version of Gmail and just started having issues with this awesome program. I receive a email in my inbox, draft a reply, schedule it then archive the email. It is still in my drafts but i then receive an email that it is unable to be sent. Any ideas?

Frontend styles.css & script.js files?

Hi, thanks for making this! Works great. Question - is there a need for the frontend styles.css and script.js files? What do they do and how do we deploy them? Nothing in the instructions or readme about them.

Thanks!

"Send later" button in Gmail

Hi Ray,
I've found your project wonderful, and I share the frustration of not having a similar tool built in Gmail.
Have either you or Amit Agarwal interest to make this tool more user-friendly by introducing a "Send later" buttom directly in Gmail? Do you see any third-party issue related to this?
Regards,
Enrico

Google is restricting Gmail API Scopes

Google recently announced changes to Gmail API scopes.

They recently sent an email stating:

The project is not associated with a G Suite domain or is used by Google Accounts outside of your domain: Submit your app for verification by February 15th, 2019.

For projects that require action, you must submit apps for verification before Feb 15th, 2019. If you don't, access for new users will be disabled on February 22nd, 2019, and existing grants for consumer accounts will be revoked on March 31st, 2019.

What this means for this project:

  • The public demo (which was linked to my account) may no longer work.
  • If you shared a link to your setup of this script it may stop working.
  • If only people in your Gsuite domain use it you'll be fine.
  • If you only use this project for your personal account you'll be fine.

If anyone has more information please add it here.

Submit Button Doesn't work Anymore

Hi RayBB,

You have created an incredible and clean solution! I love the ease of it and I love that I own the code (although really, I'm just using your code).

I've started using it since late November, I only send a couple emails a week, if that. But since Monday December 24, when I click the "Submit" button, nothing happens. Did Google change some authentication requirements? Or maybe one of those github dependent files like moment.min.js have been updated?

The Google Cloud API looks different now than compared to your screenshots.
The screen has an "Info" that says:
To use this API, you may need credentials. Click 'Create credentials' to get started.
google cloud gmail api

Chrome's Developer Tools Options shows an error "blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource."
cors_error

I'm not sure if the Gmail API changed from before. Also, I'm not sure if this CORS error was there before or not. Everything used to just work.

Thanks in advance.

Error in instructions or gmail.js

So far the script has worked great! Thanks for your work on this....really simple to use.

The instructions say to create an 'index.html' , but I think that it should be 'Index.html' The code in gmail.js references Index for the html page, which is why I kept on getting an error when it was index (the upper vs lower case for the I or i). I think it is line 110 that has the difference.

Either I got lucky or that fixed the problem.

Thanks again for the script and code!

Mailtrack.io support

Hi,

Thanks for sharing this awesome app. I'm having some problems with this using mailtrack. When I send an email the mailtrack code is being removed. By any chance you can support this?

TIA

IMAP/SMTP support

That would be awesome to have an IMAP/SMTP support in order to work with generic email servers. Cheers,

No HTML file named Index was found.

Hi,

Not sure if this is the best way, but I had the following.

I get the following error after intitally publishing:
"No HTML file named Index was found. (line 110, file "Code", project "Email Sched")"

Changed line 110 to return HtmlService.createHtmlOutputFromFile('Index.html') to make it work.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.