osynapsy/mailer

Less code, more control. A clean, backend-driven mailer for PHP — modular, debuggable, and ready for your own delivery clients.

Installs: 4

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/osynapsy/mailer

0.5 2025-11-15 07:18 UTC

This package is auto-updated.

Last update: 2025-11-15 07:22:40 UTC


README

Osynapsy Mailer è un package PHP per l'invio di email tramite diversi client, incluso SMTP, con supporto per coda, messaggi transazionali con placeholder e allegati.

Installazione

Utilizzando Composer:

composer require osynapsy/mailer

Utilizzo base

Creare un messaggio

use Osynapsy\Mailer\Email\Message;

$msg = new Message('mittente@example.com', 'destinatario@example.com', 'Oggetto della mail');
$msg->setHtmlBody('<b>Ciao!</b>');
$msg->addAttachment('/percorso/al/file.pdf');

Inviare la mail tramite SMTP

use Osynapsy\Mailer\Client\Smtp\SmtpClient;
use Osynapsy\Mailer\Mailer;

$client = new SmtpClient(
    'smtp.example.com',
    587,
    'username',
    'password',
    'tls'
);

$mailer = new Mailer($client);
$mailer->send($msg);

$errors = $mailer->getErrors();
if (!empty($errors)) {
    print_r($errors);
}

Messaggi Transazionali

Per supportare placeholder e invii personalizzati:

use Osynapsy\Mailer\Email\TransitionalMessage;

$msg = new TransitionalMessage('mittente@example.com', 'destinatario@example.com', 'Benvenuto');
$msg->setHtmlBody('Ciao {nome}, benvenuto!');
$msg->setPlaceholder('nome', 'Peter');

$mailer->send($msg);

Queue

È possibile accodare più messaggi e inviarli tutti insieme:

$mailer->queue($msg1)
       ->queue($msg2)
       ->sendQueue();

Connessioni alternative

Il client Mailer accetta qualsiasi oggetto che implementi ClientInterface, permettendo di cambiare facilmente il metodo di invio, ad esempio tramite un'API REST:

use Osynapsy\Mailer\Client\ClientInterface;
use Osynapsy\Mailer\Mailer;

class RestConnection implements ClientInterface {
    public function sendMessage(Message $msg) {
        // invio via API REST
    }
}

$client = new RestConnection();
$mailer = new Mailer($client);

Gestione errori

Gli errori vengono raccolti dal Mailer e possono essere letti tramite:

$errors = $mailer->getErrors();

License

MIT License