opEvents releases after 1.1.0 include a facility to define your own templates for email notifications (ie. emails as part of an event action or because of an escalation).

The setup is very simple and requires basically just two steps:

  1. deciding on what information to present and in what order, and
  2. associating a contact with a particular template.

Defining custom email templates

The configuration file install/EventEmails.nmis contains the definitions of all email templates. As shipped it includes one special template named default, which is chosen for all email contacts without a template association, and one example for a very concise report. You can of course modify these existing templates or define your own. Here are these two example templates:

'default' => {
	'subject'=> [ "event.date", ' ',"node.name", ' ', "event.event" ],
	'body' => [
		"Event Context:\n", "link.eventcontext", "\n\n",
		"Node Properties:\n","node.*","\n\n",
		"Event Properties:\n","event.*","\n","\n",
 'veryshort' => {
 	'subject' => [ "node.name", ' ', "event.event" ],
	'body' => [
		"The event \"","event.event", "\" for host \"", "node.name", 
		"\" occurred at ", "event.date",
		".\nAll event details can be found here: ", "link.eventcontext", 
		"\n", "All node details can be found here: ", "link.nodecontext", 

The syntactic rules for templates are simple but  flexible:

Associating an email contact with a template

The configuration file Contacts.nmis contains the list of (email) contacts, and needs to be adjusted if you want templates other than default  to be used. The example file as shipped shows where the email template is set:

'contact1' => {
	'Contact' => 'Contact1',
	'Email' => 'nobody@localhost',
	'EmailTemplate' => 'default',

Simply change the value after EmailTemplate to the name of your desired template. If opEvents cannot find the named template, or if no EmailTemplate setting is present, then the default template will be used. If that template doesn't exist or work, then you will receive your emails formatted with a hardcoded fallback template that includes a warning notice at the top.