amsom-habitat/mailer-sender

Utilities pour les envoies de mails depuis MailerInterface

Maintainers

Package info

gitlab.com/amsom-package/mailersender

Issues

pkg:composer/amsom-habitat/mailer-sender

Transparency log

Statistics

Installs: 12 483

Dependents: 0

Suggesters: 0

Stars: 0

v3.2.0 2026-07-15 15:59 UTC

This package is auto-updated.

Last update: 2026-07-15 13:59:45 UTC


README

Petit connecteur PHP pour envoyer des mails via l'API mailing d'AMSOM Habitat.

Installation

composer require amsom-habitat/mailer-sender

Configuration (2 variables d'env)

API_MAIL_URL=http://api_mailing        # base de l'API mailing
API_MAIL_KEY=ma_cle_api                 # clé fournie par l'API (route /v2)

La gestion prod / test (redirection des mails) est désormais assurée par l'API elle-même, plus par le connecteur.

Utilisation — send()

Une seule méthode, un tableau. On ajoute une option = on ajoute une clé.

use AmsomUtilities\MailerSender;

// $mailer est injecté par Symfony (autowiring)
$res = $mailer->send([
    'template' => 'basic',                 // nom de template, 'custom' ou 'simple'
    'to'       => 'locataire@example.com',
    'subject'  => 'Information',
    'body'     => ['message' => 'Bonjour, votre demande a été prise en compte.'],
]);

if (!$res['success']) {
    // $res['httpStatus'], $res['error']
}
// $res['id'] = identifiant de suivi (visible sur /emails de l'API)

Champs disponibles

💡 Découverte : le tableau $mail est décrit en array{...} dans le docblock de send()PhpStorm autocomplète les clés. Pour une liste à l'exécution :

dump(\AmsomUtilities\MailerSender::champsDisponibles()); // clé => description, à date
CléTypeDescription
templatestringRequis. Nom de template (basic, enquete, …), custom ou simple
tostring | string[]Requis. Destinataire — un email ou un tableau d'emails
subjectstringRequis. Objet
bodyarrayDonnées du template
textstringContenu brut (pour template: 'simple')
fromstringExpéditeur réel (passe par le relay interne)
replyTostringAdresse de réponse (en-tête Reply-To)
cc / ccistring[]Copies / copies cachées
destinatairestringNom affiché du destinataire
attachmentsarray[]Pièces jointes (voir ci-dessous)
optionsarrayConfig de template libre : logo, bonjour, signature, …
deliveryarraymode (async/sync), retries, delayMs, timeToKeep, testMode

Pièces jointes

'attachments' => [
    // contenu déjà en base64
    ['filename' => 'facture.pdf', 'content' => $base64],
    // OU un fichier / une URL, converti en base64 par le connecteur
    ['filename' => 'photo.jpg', 'content' => '/tmp/photo.jpg', 'type' => 'path'],
    ['filename' => 'image',     'content' => 'https://…',      'type' => 'url'],
]

Exemple custom + expéditeur + réponse

$mailer->send([
    'template' => 'custom',
    'to'       => 'locataire@example.com',
    'subject'  => 'Votre dossier',
    'from'     => 'service-client@amsom-habitat.fr',
    'replyTo'  => 'contact@amsom-habitat.fr',
    'body'     => ['message' => 'Veuillez trouver le document ci-joint.'],
    'options'  => ['logo' => 'logoSyneo', 'signature' => ['nom' => 'Martin', 'prenom' => 'Claire']],
    'attachments' => [['filename' => 'dossier.pdf', 'content' => '/tmp/dossier.pdf', 'type' => 'path']],
    'delivery' => ['mode' => 'sync'],
]);

Valeur de retour

send() renvoie un tableau : success (bool), httpStatus (int), id (hash de suivi), status, et error en cas d'échec. Lève \RuntimeException si la config manque ou si l'appel réseau échoue.

Anciennes méthodes (dépréciées)

sendMail(), apiSendMail() et apiSendMailCustom() restent disponibles à l'identique pour compatibilité, mais ne sont plus recommandées : préférez send().