The following classes, along with the
MailTemplate model classes and
EmailTemplateDAO DAO class, provide all email functionality used in the system:
Mail.inc.php provides the basic functionality for composing, addressing, and sending an email message. It is extended by the class
MailTemplate to add support for template-based messages. In turn,
ArticleMailTemplate adds features that are useful for messages pertaining to a specific article, such as message logging that can be viewed on a per-article basis.
For a sample of typical usage and invocation code, see the various Action classes, such as
notifyReviewer method. Note that since nearly all emails composed by the system must be displayed to the user, who then must be able to modify it over several browser request-response cycles, some complexity is necessary to maintain the system’s state between requests.