Requirements
Compose
- adds form to with followup checkbox and date/time of follow up (defaulting to x weeks out)
- on submit creates a google calendar event at that date time
- stores record of subject line, recipient(s), and calendar event details
View
- checks Subject and sender against stored reminders and on match deletes the associated calendar event
Settings
- default x weeks out reminder
- default to remind or not to remind
Documentation
- http://code.google.com/apis/gadgets/
- http://code.google.com/apis/gadgets/docs/gs.html
- Directory of gadgets : http://www.google.com/ig/directory?synd=open&q=gmail
- Gadgets API Reference : http://code.google.com/apis/gadgets/docs/reference/
- Developing Google Gadgets with the Eclipse GWT plugin : http://groups.google.com/group/gwt-google-apis/browse_thread/thread/cbf58897c8549609
- Gadgets fundamentals : http://code.google.com/apis/gadgets/docs/fundamentals.html
- gadgets.util : http://wiki.opensocial.org/index.php?title=Gadgets.util_%28v0.9%29
Outstanding Questions
- If a google gadget is in an iframe does it have access to the DOM of the gmail page?
Alternative Design
Work Summary
- Develop greasemonkey script which has a checkbox and text field that when checked fills in the BCC field with a pre formulated string
- Create followup.jdoe.example.com domain
- Enable forwarding by MTA of all email destined for followup.jdoe.example.com to sender email address
- Develop polling script which
- queries via API and deletes followup emails if a reply exists
- labels emails that have exceeded the “follow up time window”
- Establish cronjob to call polling script daily
Overview
Interface
- Create and enable a greasemonkey script which adds a button of form to flag for followup and optionally designate a “follow up time window”
- http://code.google.com/p/gmail-greasemonkey/wiki/GmailGreasemonkey10API
- Have this button and or form fill in the BCC field as described below
Mark
- BCC a special email address for emails that require followup (e.g. john.doe+r@example.com)
- ALTERNATIVE : BCC an email address at a domain which forwards everything to a single address (e.g. anything@followup.jdoe.example.com)
- Perhaps embed the follow up time window if it’s not default in the email address name (e.g. 5+days@followup.jdoe.example.com)
- Have this email address be delivered to the same mail account as the sender
- Have the sender’s email system filter and store emails containing the “+r” designator in a special “Follow Up” email folder
- ALTERNATIVE : Have the sender’s email system filter and store emails destined for the special domain (e.g. *@followup.jdoe.example.com) in a special “Follow Up” email folder
Poll
- Create a script which runs via cron and :
- Connects via IMAP to the sender’s email system
- ALTERNATIVE : Queries gmail via something other than IMAP for example http://libgmail.sourceforge.net/
- Reads in all emails in the “Follow Up” folder
- grabs the following fields :
- For each “Follow up” mail do a substring search for other mail in the whole IMAP account
- Which was not sent by the sender
- For each match, delete the corresponding “Follow Up” email in the “Follow Up” folder
- For each “Follow up” mail remaining parse the “To” field and look for a non-default “follow up time window” encoded in the address
- For each mail if (now() - the “Date” field) > “follow up time window”
- Take some action like :
- Email the sender an example reminder email that they can then tweak and forward to the non-responsive recipient
- Insert a calendar event to follow up on the sent email
- Update a webpage of outstanding unresponded to emails
- Flag the followup email with a star or label