RdbAdmin Module

Email
in package

Email class.

For make it easier to load mailer class with send mail configuration.

Tags
since
0.1

Table of Contents

Properties

$baseFolder  : string
$Container  : Container

Methods

__construct()  : mixed
Class constructor.
__get()  : mixed
Magic get.
getMailer()  : PHPMailer
Initialize mailer class and configured it.
getMessage()  : string
Get email message content and maybe replace the placeholder.

Properties

$baseFolder

protected string $baseFolder

The base folder (full path) to prepend to relative paths to images.

$Container

protected Container $Container

Methods

__construct()

Class constructor.

public __construct(Container $Container) : mixed
Parameters
$Container : Container

The DI container class. Only required for some method.

__get()

Magic get.

public __get(string $name) : mixed
Parameters
$name : string

getMailer()

Initialize mailer class and configured it.

public getMailer() : PHPMailer

This method initialize the mailer class, setup configuration for it (mail, sendmail, smtp, smtp username & password, etc..).
It also setup sender address.
This method trigger exception for mailer. So, please use try..catch to catch the error message.

Tags
throws
Exception

Throw exception if contain errors.

Return values
PHPMailer

Return mailer class to ready for set receipt address, subject, body message and send.

getMessage()

Get email message content and maybe replace the placeholder.

public getMessage(string $moduleName, string $messageFile[, array<string|int, mixed> $replaces = [] ]) : string

It will be looking for "Module/[moduleName]/languages/email-messages/[messageFile]-[language].html" file.
This method can replace placeholder in the $replaces argument.

After called to this method, you can access the base folder (full path) that can be use for prepend to relative paths to images by call to $Email->baseFolder.

You can design email message by add any image related from the baseFolder.
Example: baseFolder is "Modules/MyModule", the image tag &lt;img src=&quot;assets/img/logo.png&quot;&gt; will be call to "Modules/MyModule/assets/img/logo.pn".

Full example:

$Email = new \Rdb\Modules\RdbAdmin\Libraries\Email($this->Container);
$Mail = $Email->getMailer();
$Mail->addAddress('someone@address.tld', 'someone name');
$Mail->Subject = 'Forgot my password.';
$Mail->isHTML(true);
$replaces['%tokenvalue%'] = $tokenValue;
$emailMessage = $Email->getMessage('RdbAdmin', 'ForgotLoginPass', $replaces);
$Mail->msgHtml($emailMessage, $Email->baseFolder);
$Mail->AltBody = $Mail->html2text($emailMessage);
$Mail->send();
Parameters
$moduleName : string

The module name (case sensitive) that this email message file is in.

$messageFile : string

The email message file without extension. Example: 'ForgotLoginPass' will be looking for 'ForgotLoginPass-[language].html'.

$replaces : array<string|int, mixed> = []

The associative array for replace placeholder in message.

Tags
throws
RuntimeException

Throw exception if the email message file was not found.

Return values
string

Return email message content.


        
On this page

Search results