# sg_mail This extension provides an email templating service and mail queue for other extensions. Templates in various languages can be managed in the backend. Additionally sg_mail provides a finisher class for the Formhandler extension, making it possible to manage formhandler templates in the backend. ## Registering your Extension/Plugin To integrate sg_mail available for your extension, you have to register it inside your **ext_localconf.php** by supplying a path string to an implementation of **SGalinski\SgMail\Service\RegisterInterface** with: * your extension key * a name for the template * the path to your default template files (template files should be named *language_code*.template.html. Example: en.template.html) * a brief description of the template (when is it used ?) * the template markers(placeholder variables) * the subjects for all templates. Here you have to use an associative array language_code => subject ### Example : An example class can be found here: **SGalinski\SgMail\Example\Register** Register your class in **ext_localconf.php** with: ```\SGalinski\SgMail\Service\MailTemplateService::registerByFile('SGalinski\SgMail\Example\Register');``` ### Send an email with the MailTemplateService Basic Usage: 1. Get an instance of MailTemplateService 2. Set all desired fields (i.e. setLanguage, setToAddresses, setTemplateName, setExtensionKey etc.) 3. Invoke the **sendEmail()** function You can also set the priority (setPriority function of the service) for your mails with the constants of the **SGalinski\SgMail\Domain\Model\Mail** class. With the Flag **ignoreMailQueue** you can switch between queueing your Mail(false) or immediately(true) sending it. * PRIORITY_LOWEST * PRIORITY_LOW * PRIORITY_MEDIUM * PRIORITY_HIGH * PRIORITY_HIGHEST The higher the priority, the more likely the mail will get send immediately (depending how "busy" the MailQueue is). ## Using sg_mail with Formhandler In your **setup.ts** of your formhandler extension, you have to invoke the **FormhandlerFinisherService** of sg_mail. This is done in a similar fashion as with the usual finisher classes. ### Example of sg_formhandler_ordercard ``` finishers { # Finisher_Mail sends emails to an admin and/or the user. 1 { class = SGalinski\SgMail\Service\FormhandlerFinisherService config { checkBinaryCrLf = message template_key = order_card_admin extension_key = sg_formhandler_ordercard to_address = admin@sgalinski.de from_address = info@sgalinski.de from_name = sgalinski.de ignore_mail_queue = TRUE } } } ```