All of the suggestions are trivial, less than 5 minutes of work. It’s
your relative knowledge (“Chef skill”) with regard to the ecosystem
that makes them seem “complicated”. I’ve heard this a lot recently,
but you’re the first I’m going to call out on it.
I would probably suggest not being so aggressive in your replies to
the mailing list. Building a chef handler is simple. Building one that
shells to ‘mail’ with a pipe is simple as well. It is not complicated.
@kallistec took the time to respond rapidly to your question with a
handler that @kisoku had already built for you. Many of us build this
software for a living.
I would add a recommendation for using the Pony gem. It looks like
@kisoku’s chef-handler-mail software supports a custom template for
emailing, which is something you’d end up doing eventually anyway: I
bet you’ll want to send data based on the converge itself (updated
resources, which resources, updated resources of a certain type, run
length info, blah blah.)
The “half day of dependency hell” to which you so promptly refer is
solved with a few Chef resources in a cookbook, probably designed for
installing the email handler:
chef_handler 'MailHandler' do
arguments :to_address => "root"
The dependency on ‘pony’ is handled through the chef_gem installation
of chef-handler-mail. There are no additional deps. 
Please, do the needful.
On Wed, Nov 26, 2014 at 7:54 AM, Phil Mocek email@example.com wrote:
Daniel DeLeo wrote:
there are already ones written that do what you’re asking, like
this one: https://github.com/kisoku/chef-handler-mail
That’s not quite what I’m asking, which is for a simple method to
configure chef-client to send an e-mail to a particular address if
convergence fails. Apparently, to use chef-handler-email, I need
to install one or more gems on client systems (that sounds like a
half-day of dependency hell), or use the provided LWRP in a recipe
of my creation. If that’s the simplest way to get an e-mail from
chef-client on failure, I’m disappointed, and concerned that I
have miscommunicated my goal.
A super simple example is provided in the docs you linked:
https://docs.getchef.com/essentials_handlers.html#syntax if you
just want to copy pasta that code.
That appears to be a simple example of how to write a custom
handler. I do not want to write a custom handler. All I really
need to customize is the e-mail address to which notifications
should be sent, like cron’s MAILTO setting.
If you’re interested in other community-contributed handlers,
there’s a list at the bottom of the documentation page:
That is preferable to writing my own handler. It still appears to
require writing a recipe. I’m busy writing recipes to deploy and
configure software and virtual infrastructure. I just want to
tell chef-client to send an e-mail when it fails.
Also, there is a chef_handler cookbook that will manage handlers
for you, some documentation on that is here:
That’s also useful, and also far more complicated than I hoped it
would be just to get chef-client to send an e-mail on failure.
I feel like I must be missing something. My goal, here, seems
likely to be a common one, and Chef generally handles those well
without much work on the user’s part.
Thanks for the suggestions, Daniel. I suspect I will end up using
some of what you referenced.