How to be notified that I didn't receive a scheduled email?
April 30, 2012 8:24 PM   Subscribe

How does your computer say that you didn't get an email that you were expecting to get?

I receive email notifications every day with varying, automatically generated subject lines that have a timestamp, all from the same internal email address, generally before a certain time every day. Each notification arrives on a separate schedule - some monthly, some twice a week, some on the 1st and 17th of the month, some daily. The email lets me know that some process or another completed on a server somewhere in my company, and is usually to: a client contact, while I'm usually bcc:'ed.

I'd like to be alerted if one doesn't land in my inbox, by a scheduled time. This gives me time to investigate and hopefully resolve before the client notices.

I have a list of the emails I should receive, each with a schedule, charted out in Excel, and I manually compare to what is actually in my inbox. Which is tedious. Assume I would be checking for 20+ emails every weekday. Assume that everyone else in my department does the same thing, and that we all dislike doing this.

I'm on a pc using outlook 2010, exchange server, USA.
I'm technical andwork with programmers, but don't code much.
I can modify anything about the email notifications.
I assume the emails are confidential, can't send to 3rd party service.

I'd love to hear about how this could be solved with an outlook plugin, snip of code, or a network monitoring application (like WhatsUp) that would do this.
posted by enfa to Computers & Internet (7 answers total) 3 users marked this as a favorite
Boomerang sounds like a possible solution. I use it for gmail, although apparently they have an Outlook version as well.
posted by Paper rabies at 8:41 PM on April 30, 2012

I've not done this, but I've scripted outlook before.

I would:

1) set up a recurring outlook appointment on your deadline to beep at you saying that email x hasn't arrived.
2) set up a rule in the rules wizard saying 'when email with subject/sender y arrives, run macro z'
3) write macro z to delete today's instance of the reminder appointment.
posted by pompomtom at 8:43 PM on April 30, 2012 [3 favorites]

My first instinct would be to whip up some Visual Basic to do this... but it's been more than a decade since I actually scripted Office so I'm afraid I can't help much further than that. On preview, I think pompomtom's got a good idea, and should keep the macro-writing to a minimum.
posted by Tomorrowful at 8:46 PM on April 30, 2012

I do my Outlook scripting in Python.

If you have Python and the Pythonwin extensions, you can do the following:

import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application")
mapi = outlook.GetNameSpace('MAPI')
inbox = mapi.GetDefaultFolder(6)
msgs = inbox.Items

After this msgs is a list of messages in your inbox, and for example msgs[0].Subject is the subject line of the first message in the list.

The 6 in the above code is the magic number that identifies the inbox rather than other Outlook folders like calendar etc.

Some of this might vary depending on your versions Windows, Office & Python.
posted by philipy at 9:12 PM on April 30, 2012 [1 favorite]

Sysadmins have built a set of tools to alert us when things go wrong using the framework called nagios. It's generalized to the point that it's very nearly a Domain Specific Language for what's in your spreadsheet. So my proposal is to abuse this system.

So now, instead BCC's tracking your inbox, you deliver to a special inbox. IMAP4 supports search queries, and Exchange can toggle IMAP4 support for the entire server or specific users. So you have a nagios plugin (a script, really) that runs an IMAP4 query against that inbox for something like SUBJECT $STRING SINCE ($TODAY - $FREQUENCY + $JITTER_THRESHOLD). Ideally, your nagios script is parameterized to the point that you can represent the deadlines you've gathered in Excel. If the result set is empty, your script returns CRITICAL, and nagios sends an alert email to you. Most nagios installs I've seen run checks every 5 minutes, which might be aggressive but unlikely a problem.

Of course, this may not entirely solve your problem. If your mail server is delivering mail fine locally offsite, but failing externally, any monitoring system you set in action will not notice this failure condition. There are actions you can take to mitigate this, but short of snooping your client's inbox to check read status and spam flags, a line must always be drawn.
posted by pwnguin at 9:28 PM on April 30, 2012 [1 favorite]

2nding pwnguin.
posted by bfranklin at 6:15 AM on May 1, 2012

Hey, I have almost the same issue! Informatica (the ETL tool I am forced to interact with) sends an email on the success and failure of a process, but if it hangs... nothing. Then people get annoyed that data isn't loading to where it is supposed to go.

I am planning on doing something with a cron job and Python's imaplib library, but I haven't gotten around to it yet.
posted by rockindata at 6:58 AM on May 1, 2012

« Older I'm Partial to the Salmon and Shrimp Flake, Myself   |   One-Time Cloud Backup of Archives Newer »
This thread is closed to new comments.