PHP code example of dmt-software / mail-service

1. Go to this page and download the library: Download dmt-software/mail-service library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

dmt-software / mail-service example snippets


use DMT\MailService\Exceptions\InvalidMessageException;
use DMT\MailService\Exceptions\SendMessageException;
use DMT\MailService\MailService;
use DMT\MailService\Model\EmailAddress;
use DMT\MailService\Model\EmailMessage;

try {
    /** @var MailService $service */
    $service->send(
        new EmailMessage(
            subject: 'subject',
            html: '<p>html content</p>',
            text: 'text content',
            to: new EmailAddress('[email protected]'),
            from: new EmailAddress('[email protected]') 
        )
    );
} catch (InvalidMessageException|SendMessageException) {
    // error sending email
}

use DMT\MailService\Adapters\MailAdapterInterface;
use DMT\MailService\Event\MailServiceEventDispatcher;
use DMT\MailService\Event\Subscribers\HtmlToTextEventSubscriber;
use DMT\MailService\MailService;
use DMT\MailService\Model\EmailMessage;

/** @var MailAdapterInterface $adapter */
$service = new MailService(
    $adapter, 
    new MailServiceEventDispatcher(
        new HtmlToTextEventSubscriber()
    )
);

/** @var EmailMessage $message */
$message = new EmailMessage(
    subject: 'subject',
    html: '<p>content</p>',
    text: null,
    to: new EmailAddress('[email protected]'),
    from: new EmailAddress('[email protected]') 
);

$service->send($message); // message will contain a text part: "content"

use DMT\MailService\Adapters\MailAdapterInterface;
use DMT\MailService\Event\MailServiceEventDispatcher;
use DMT\MailService\Event\Subscribers\RenderMailTemplateEventSubscriber;
use DMT\MailService\MailService;
use DMT\MailService\Model\TemplatedMessage;
use Twig\Environment;

/** @var MailAdapterInterface $adapter */
/** @var Environment $twig */
$service = new MailService(
    $adapter, 
    new MailServiceEventDispatcher(
        new RenderMailTemplateEventSubscriber($twig)
    )
);

$message = new TemplatedMessage(
    subject: 'subject',
    template: 'mail/template.twig',
    to: new EmailAddress('[email protected]'),
    from: new EmailAddress('[email protected]'),
    context: ['name' => 'Jane Doe']
);

$service->send($message); // template will be rendered