NAME
Jifty::Notification - Send emails from Jifty
USAGE
It is recommended that you subclass Jifty::Notification and override body
, html_body
, subject
, recipients
, and from
for each message. (You may want a base class to provide from
, preface
and footer
for example.) This lets you keep all of your notifications in the same place.
However, if you really want to make a notification type in code without subclassing, you can create a Jifty::Notification
and call the set_body
, set_subject
, and so on methods on it.
METHODS
new [KEY1 => VAL1, ...]
Creates a new Jifty::Notification. Any keyword args given are used to call set accessors of the same name.
Then it calls setup
.
setup
Your subclass should override this to set the various field values.
send_one_message
Delivers the notification, using the Email::Send mailer defined in the Mailer
and MailerArgs
configuration arguments. Returns true if mail was actually sent. Note errors are not the only cause of mail not being sent -- for example, the recipients list could be empty.
If you wish to send HTML mail, set html_body
. If this is not set (for backwards compatibility) a plain-text email is sent. If html_body
and body
are both set, a multipart mail is sent. See Email::MIME::CreateHTML for how this is done.
Be aware that if you haven't set recipients
, this will fail silently and return without doing anything useful.
set_headers MESSAGE
Takes a Email::MIME object MESSAGE
, and modifies it as necessary before sending it out. As the method name implies, this is usually used to add or modify headers. By default, does nothing; this method is meant to be overridden.
body [BODY]
Gets or sets the body of the notification, as a string.
subject [SUBJECT]
Gets or sets the subject of the notification, as a string.
from [FROM]
Gets or sets the from address of the notification, as a string.
recipients [RECIPIENT, ...]
Gets or sets the addresses of the recipients of the notification, as a list of strings (not a reference).
email_from OBJECT
Returns the email address from the given object. This defaults to calling an 'email' method on the object. This method will be called by "send" to get email addresses (for "to") out of the list of "recipients".
to_list [OBJECT, OBJECT...]
Gets or sets the list of objects that the message will be sent to. Each one is sent a separate copy of the email. If passed no parameters, returns the objects that have been set. This also suppresses duplicates.
send
Sends an individual email to every user in "to_list"; it does this by setting "to" and "recipient" to the first user in "to_list" calling Jifty::Notification's send
method, and progressing down the list.
Additionally, if "to" was set elsewhere, sends an email to that person, as well.
to
Of the list of users that to
provided, returns the one which mail is currently being sent to. This is set by the "send" method, such that it is available to all of the methods that Jifty::Notification's send
method calls.
preface
Print a header for the message. You want to override this to print a message.
Returns the message as a scalar.
footer
Print a footer for the message. You want to override this to print a message.
Returns the message as a scalar.
full_body
The main, plain-text part of the message. This is the preface, body, and footer joined by newlines.
full_html
Same as full_body, but with HTML.
parts
The parts of the message. You want to override this if you want to send multi-part mail. By default, this method returns a single part consisting of the result of calling $self->full_body
.
Returns the parts as an array reference.
magic_letme_token_for PATH
Returns a Jifty::LetMe token which allows the current user to access a path on the site.