Skip to content
Snippets Groups Projects
README.md 2.54 KiB
Newer Older
Paul Ilea's avatar
Paul Ilea committed
# 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
			}
		}
}
```