Amazon Simple Email Service on Windows – How To

Today Amazon announced AWS Simple Email Service (SES) beta.  SES is a great addition to Amazon Web Services, with it an organization can send marketing, transactional, subscription or system notification messages without have to manage their own messaging infrastructure.  And just like all other AWS services it’s pay-as-you-go – even free in some instances.

Soon as I received the announcement from Amazon I immediately set out to give it a try.  Since I normally use Windows that’s what I used for this.  I ran into a couple of minor problems but was easily able to resolve them and now I’m sending email through SES like a mad man. . .

Summary – Quick Steps
If you’re anxious to get started and don’t want any fluff here you go.  For everyone else read below.
  • Sign-up for SES
  • Install Perl
    • Install XML-LibXML via Perl Package Manager (instructions below)
  • Download AWS SES scripts
  • Setup “credentials” file (see below for details)
  • Get verified: -k creds.txt -v
  • Send email: -k creds.txt -s "Test One" -f

Sign-up for SES.  If you already have an AWS account you’re one step closer, if not you’ll have to start there.

SES uses Perl scripts, therefore you must have Perl installed on your Windows machine.  I installed ActivePerl Community Edition.  Soon as that was done I ran the first SES script to get an email address verified but ran into my first problem – c:perlbin didn’t get added to my path by the installation (for some reason it added c:perlsitebin) so I had to do that manually (if you don’t know how to do this you probably shouldn’t be here anyway. . . )

Amazon Simple Email Service Scripts
Download the SES scripts and save to a useful location – I used d:awsses.  This download includes the following SES scripts:

  • – retrieves statistics about Amazon SES account usage
  • – send email using Amazon SES
  • – verify email addresses to be used with Amazon SES

Next problem – when I ran --help I received the message: “Can't locate XML/ in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib.) at line 26.  BEGIN failed--compilation aborted at line 26.

After tooling around the web for a few minutes I realized I needed to manually install XML-LibXML.  This was easily done by opening the Perl Package Manager off the Start menu.  In there:

  • Click the “View All Packages” button or press Ctrl+1
  • Type libxml in the search box
  • Right-click on XML-LibXML and select Install . . .
  • Click File, Run Marked Actions or press Ctrl+Enter

Now when you run --help from the command line you can actually see the help for this command.

Credentials File for SES Commands
All of the SES scripts or commands require authentication to AWS, which makes sense.  You can save your credentials (both AWSAccessKeyId and AWSSecretKey) to a file, creds.txt and pass that to each script with the -k <filename> command.

Example credentials file:


Verify Email Address for SES
In order to send any email you must add & verify at least one email address to which you have access.  The verification is a two-step process.  First run the command: -k creds.txt -v  Amazon will send an email to that address with a link to click to finalize verification.

NOTE: Until you are granted production access to Amazon Simple Email Service you can only send to verified addresses. Click to Request for Production Access to Simple Email Service.  They say it may take up to 24 hours, but my access request was granted in about 30 minutes – now I can send to any address!

View List of Verified SES Addresses
By running the command -k creds.txt -l you are supposed to be able to view a list of verified addresses, however when I run this nothing is returned.  I did discover though that using the --verbose switch, -k creds.txt -l --verbose, I am able to view a list of verified addresses:

<listverifiedemailaddressesresponse xmlns="</p><p>01/">

Send Email With SES
Finally we are ready to send email using the command -k creds.txt -s "Test One" -f  Press Enter then you can type the body of your message.  When that’s done press CTRL+Z, then Enter.  It will hesitate for a second or two while your credentials, etc. are verified and the message is queued.  Finally, check your email.

Amazon Simple Email Service looks to be a very useful tool and is a great addition to Amazon Web Services.  In just a few minutes you can be sending email through SES, and it can be adapted for myriad purposes.  Get started today and start emailing (useful messages – NO SPAM or other crap!).

Additional Info

See Also

Roboplow – Awesome robot snowplow

This is how snow should be plowed!

Dude Builds Snow Plowing Robot – Watch more


GNUWin32 Grep for Windows

Grep for Windows 7, Windows 2008, etc.

Grep searches one or more input files for lines containing a match to a specified pattern. By default, grep prints the matching lines.

The general synopsis of the grep command line is

grep options pattern input_file_names

Grep for Windows examples

Download GNUWin32 Grep.


1.78 Million Facebook Users May Die This Year (2011)

Does Facebook really have more than 500 million “active” users?

According to data from digital-legacy planning firm Entrustet, a big portion of these users will soon no longer be considered “active,” by any reasonable measure. The company compared Facebook usership data with average death rates from the Center for Disease Control, and discovered that this year, around 480,000 Facebook users may pass away in the U.S., and 1.78 million worldwide. These figures are only likely to grow year to year, especially as Facebook expands pass the 600 million user mark.

So many profiles now fall out of the range of an “active” user. Beyond the deceased, there are endless duplicate accounts–Entrustet found that 150% of 20- to 24-year-olds in the U.S. are on Facebook–not exactly a plausible tally. What’s more, a recent Gartner report estimated that in the coming years, roughly one in every ten of your friends on Facebook and other social networks will be nonhuman, meaning they’ll be “social bots,” automated profiles created by brands and organizations to engage consumers.

Read entire article.


My Favorite Firefox Add-ons

While there are thousands of Firefox add-ons there are a few I can’t live without; in fact, I install most of these on almost every computer I touch.

  • Video DownloadHelper – DownloadHelper is a tool for web content extraction. Its purpose is to capture video and image files from many sites.  Very useful for downloading videos from YouTube or other video sites.
  • Elasticfox Firefox Extension for Amazon EC2 – ElasticFox is a Mozilla Firefox extension for managing your Amazon EC2 account. Launch new instances, mount Elastic Block Storage volumes, map Elastic IP addresses, and more. NOTE: Elasticfox is no longer officially supported by Amazon.  But, thanks to Genki Sugawara Elasticfox-ec2tag lives on and is actively developed.
  • New Tab Homepage – A very simple tabbed browsing extension that loads your homepage when you open a new tab. If you have multiple homepages, the first is chosen.
  • Session Manager – Session Manager saves and restores the state of all windows – either when you want it or automatically at startup and after crashes. It can also automatically save the state of open windows individually.
  • Tree Style Tab – This provides tree-style tab bar, like a folder tree of Windows Explorer. New tabs opened from links (or etc.) are automatically attached to the current tab.
  • Web Developer – The Web Developer extension adds various web developer tools to a browser.

Honorable mentions.  These are other great Firefox add-ons.

  • Firesheep – A Firefox extension that demonstrates HTTP session hijacking attacks.
  • Live HTTP Headers – View HTTP headers of a page and while browsing.
  • MeasureIt – Draw a ruler across any webpage to check the width, height, or alignment of page elements in pixels.
  • Tab Slideshow – Cycles through tabs as a slideshow.
  • Sothink Web Video Downloader for Firefox – A simple, clean and easy-to-use FREE Firefox extension for video download and Flash download. Supports Windows/Mac/Linux operating systems and the latest Mozilla Firefox 3.
  • User Agent Switcher – The User Agent Switcher extension adds a menu and a toolbar button to switch the user agent of a browser.
citrix XenApp XenApp Fundamentals

Install Citrix XenApp 6 Fundamentals Edition for Windows Server 2008 R2

I get this question all the time, sometimes from random people on the street: “Hey, Powercram guy, how do I install XenApp 6 Fundamentals on Windows Server 2008 R2?” Or “What are the prerequisites for XenApp 6 Fundamentals on Windows 2008 R2?” Or this one, “Can I install XenApp 6 Fundamentals on regular Windows 2008 – not R2?” Or my favorite, “How do I upgrade previous versions of XenApp Fundamentals to XenApp 6?


  • Start with fresh install of Windows 2008 R2
  • NO Windows Updates – NO .NET 4
  • Enable .NET 3.5.1 SP1 (in Server Manager, Add Roles)
    • Other necessary roles will be installed by XenApp installation as necessary
  • Launch installer as administrator

I’ve gotten so tired of these questions from strangers I’m going to lay it all out here, and refer people to my blog to answer these age-old questions.  Well, actually the questions are fairly recent as XenApp 6 Fundamentals For Windows 2008 R2 was only released last month – December, 2010.  And, there’s the answer to one of those questions – XenApp 6 Fundamentals can ONLY be installed on Windows 2008 R2.  Period.

Let’s back up a little.  The Citrix XenApp 6 Fundamentals Edition for Windows Server 2008 R2 Administrator’s Guide is a good place to start and contains some of the information herein.  However, there are a couple things learned only from experience here as well.  This is intended to be a guide to get you started in the right direction, provide some additional info and some things to watch out for.

First, XenApp 6 Fundamentals can only be installed on Windows 2008 R2, and it must be a fresh install – no upgrades from other Windows versions, and no other version of XenApp can be upgraded to version 6.  I can’t stress this enough, you MUST start with a fresh install of Windows 2008 R2.  Oh, and NO Windows Updates.  Namely DO NOT install .NET 4 on this server – XenApp 6 will fail.

Next, enable .NET Framework 3.5.1.  This can be done in Server Manager, Add Features.  As stated before, DO NOT install .NET 4.

Finally, insert DVD or launch either autorun.exe or setup.exe (located in W2k8 folder, or XAF_6_0_0_ML_dvdW2k8 if you just expanded the ISO [XAF_6_0_0_ML_dvd.iso] as I did).  **Make sure to launch installer as Administrator (right-click, Run As Administrator.  If you don’t do this the install will fail with a cryptic message referring to the file C:UserspowercramAppDataLocalCitrix<some_citrix_file>.txt with entries saying it failed.  These are the two I had, which I couldn’t find anywhere on the ‘net:

  • Failed to configure component ‘Citrix Licensing’
  • Recording installation failure from component ‘Citrix Licensing’

Additional notes (answers to other questions):

  • If you decide to uninstall for whatever reason you MUST start all over including installing Windows 2008 R2 afresh.
  • You CANNOT upgrade an older version of XenApp Fundamentals to XenApp Fundamentals 6.  You must start with a new installation, then migrate to the new environment.
  • Do NOT install XenApp 6 Fundamentals Edition on a domain controller.

There seem to be plenty of resources (including the above referenced administrator guide) which have details on the installation from here.  I just wanted to help people get to that point.

why the xenapp 6 fundamentals edition installer fails


    Quest to Remove City ID From Droid X (and other Android phones)

    I’m on a quest to remove crapware from my Droid X, and while I haven’t figured it out exactly yet I wanted to post a little more information about programs like City ID.

    See How To Remove City ID (and other crapware like Blockbuster, Skype and VZ Navigator) From Droid X (and other Android phones) for detailed instructions.

    City ID is a product of Cequint, Inc., who have partnered with Verizon to cram it down our throats; along with other (cr)app that can’t be removed.  Just search for “remove city id” or “uninstall city id” and you’ll find millions of results – most of which are people (just like me) complaining about this crapware.  I especially liked this one, “How to remove City ID ???” on the Verizon Wireless community portal in which users are ripping Verizon, and all they had to say was, “Unfortunately you can not remove any of the apps pre-installed on your device. I apologize for the inconvenience. Hope this is helpful!”

    No, it’s not helpful you dumb ass!  I want to be able to remove this crap from my phone!  And so do a lot of other people – just Google it.  I can’t imagine that any company would want this kind of negative publicity/feedback.  Just in case they aren’t aware I will be contacting each of the persons listed below at Cequint to let them know of my displeasure about this situation.  And, I certainly hope they have decided this isn’t worth the outrage and they won’t continue their agreement with Verizon.

    Since it seems these thousands of complaints are falling on deaf ears at Verizon I’m going to contact principles at companies like Cequint, Inc.  I found this list of corporate officers from the Washington secretary of state:

    Cequint, Inc. Governing Persons

    • Rick Hennessey, President
    • Robert Hart, Chairman
    • Scott Weller, Vice President
    • Mark Gosselin, Vice President
    • John Carleton, Director
    • Nimesh Patel, Director
    • Scott Frodle, Secretary
    Cequint, Inc. Contact Info
    Phone 206.264.1909
    Fax 206.299.9127
    General Inquiries:
    Customer Support:
    Corporate address: 1011 Western Ave. Suite 800, Seattle, WA 98104

    It appears that in September of 2010 Cequint was acquired by Transaction Network Services.  Looks like I’ll be contacting them too. . .

    Open letter to Rick Hennessey, President of Cequint, Inc., the company that produced City ID and partnered with Verizon to cram it down my throat:

    Dear Mr. Hennessey,

    Several months ago I purchased a Motorola Droid X on the Verizon network.  All in all it’s been a great phone and I’m very happy with it.  However, I am very displeased with the fact that a number of (cr)apps bundled with the phone cannot be removed one of which, City ID, is from your company.

    I sincerely hope this tactic of forcing junkware on mobile phones that cannot easily be uninstalled is backfiring for you.  I for one will never use a product produced by your company or your parent company.  I will also spread the word to anyone who will listen not to use products from your company.  In fact, this message has been posted to my blog which receives a significant amount of traffic.

    I’m sure you are aware that this tactic is not very popular.  A simple Internet search of “uninstall city id,” or “remove city id” produces thousands of results, most of which are asking how to remove this and other unwanted programs, and complaining about how it got there and that it cannot be removed. 

    I have filed a complaint with the FCC naming your company and Verizon as purveyors of junk who use unethical tactics to force unwanted applications on users of Verizon phones which cannot be removed by me, the owner of the phone.  If negative publicity doesn’t get your attention hopefully the FCC will pursue this on my behalf. 

    I certainly hope you consider this feedback and cease strong-arm tactics like this. 


    Someone who will NEVER be your customer! 

    I sent the above message to the four published Cequint email addresses (above) with the subject, “Please forward to Rick Hennessey and any other exec who cares about your company image.”  I’ll post any responses here.

    Make A Difference
    Tell the FCC that Cequint and Verizon (or AT&T or Sprint or …) is forcefully installing applications with no choice to remove them by filing a complaint with the FCC at You can also file your complaint with the FCC’s Consumer Center by e-mailing; calling 1-888-CALL-FCC (1-888-225-5322) voice or 1-888-TELL-FCC (1-888-835-5322) TTY; or faxing 1-866-418-0232.  I suppose if enough people complain Verizon will stop trying to force this crap down our throats!

    Android App’s Dirty Little Secret

    Not long after Droid X came out last summer I got one, breaking a years-long relationship with Blackberry.  For the most part I’ve been pretty happy (other than a few things about which I’ve written: WTF Verizon?  Droid X PunishmentAndroid (Droid X) Kills SonicWall TZ210Things I Hate About My Droid X (Android)Blockbuster Android (cr)App, and Quest to Remove Droid Crapware).

    See How To Remove City ID (and other crapware like Blockbuster, Skype and VZ Navigator) From Droid X (and other Android phones) for detailed instructions.

    While I’m fed-up, mainly with Verizon, for all the crapware loaded on my Android phone which I cannot remove without rooting, I’m also very upset with apps that for no good reason are (or, at least have the ability) spying on me.

    Over this long holiday weekend I’ve had some time to play with the phone – not just installing what appear to be cool apps.  I recently installed SystemPanel which is a great app to see CPU and memory utilization along with currently running apps.  Much to my chagrin I found apps like Music, My Verizon Mobile, Skype Mobile, and a few others I installed running even though I hadn’t opened any of them, and I had just restarted the phone.  Why the hell do any of these need to run.  I immediately started uninstalling the apps that I could (aCar and a few others I can’t remember right now); mostly ones I had installed a while ago and thought were kinds of cool but haven’t actually used.

    I’ve been running the free version of Lookout Mobile Security for a few months.  Tonight I decided to step it up a notch and use their 30-day trial full/pro version.  One of the features of the full version is see exactly which apps have what access through the Privacy Dashboard in their Privacy Advisor.

    Like just about anybody else I gloss over the access rights any give app has when installing it.  Actually I have bypassed installing a few apps because they “required” more rights than I thought they should have.  Additionally I have read recently a few articles and blog posts where rights and privacy have been discussed, and I’ve been increasingly concerned about my personal information being used without my permission or knowledge.

    While using Lookout tonight I’m installing even more apps; some I use, some I don’t, but have kept them around either because they looked cool or I was just too lazy to get rid of them before.  None of these have any reason to know either my location, or phone or serial number’s – NONE!

    I don’t remember all the apps I uninstalled, but here are the ones I do remember.

    • AP Mobile (access to phone number and serial number)
    • Break Videos (access to phone number and serial number, and GPS location) – I’m a big fan of, but this is too much, there mobile app will no longer live on my Droid.
    • CBSNews (access to phone number and serial number, and GPS location)
    • Documents To Go (access to phone number and serial number)
    • Dolphin Browser HD (GPS location, including sending it off the phone!)
    • File Manager (access to phone number and serial number)
    • Firefox  (GPS location, including sending it off the phone!)
    • Level (access to phone number and serial number)
    • Media Remote by Sony (GPS location, including sending it off the phone!)
    • MemoryGame (access to phone number and serial number)
    • Pandora (access to phone number and serial number)
    • PayPal  (GPS location, including sending it off the phone!) – Why the hell does PayPal need my location?
    • Real Blackjack (access to phone number and serial number)
    I realize all these apps may not be nefarious, but better to be save than sorry.
    Starting spring cleaning early. . . .
    CLI Command Line FTP Linux Windows Windows 2003

    Configuring FTP in Isolation Mode in IIS 6

    IIS FTP isolation mode enables you to have a separate directory per FTP user. For example if you had a dozen different users that all need access to your FTP server but you did not want them to see any directories but their own you could setup Isolation Mode. Isolation Mode supports users either on the local computer, or if you are a member of a domain it supports domain users.

    We will begin by assuming you have FTP (and IIS) installed. Launch IIS Manager (IIS Manager 6.0 in Windows 2008). NOTE: in Windows 2008 make sure you install the IIS Management Console role so you can manage your FTP sites.

    • Delete or disable the default ftp site
    • Create a new FTP site with desired values – at the FTP User Isolation screen select Isolate Users or Isolate Users using Active Directory (which ever works better for your situation)
    • Specify path for your new FTP site
    • Set FTP Site Access Permissions to both Read and Write
    Within the root FTP directory you must create either a directory named localuser or <your_domain_name>, depending on which isolation mode you are using.  In my case I am NOT using Active Directory so I created the directory localuser.
    Within the localuser or <your_domain_name> directory create the desired user directories and assign each user sufficient permissions to their respective directory.

    Example – creating directories:

    md ftproot
    md ftprootlocaluser
    md ftprootlocaluserlocaluser1
    md ftprootlocaluserlocaluser2
    md ftprootlocaluserlocaluser3

    Example – setting Create NTFS permissions on each respective directory:

    cacls ftprootlocaluserlocaluser1 /E /G localuser1:C
    cacls ftprootlocaluserlocaluser2 /E /G localuser2:C
    cacls ftprootlocaluserlocaluser3 /E /G localuser3:C


    The Pill

    The second best thing a woman can put in her mouth to avoid pregnancy. . .