wyzen-packages/mailer-factory

简单的邮件工厂

v3.0.0 2023-12-04 16:32 UTC

This package is auto-updated.

Last update: 2024-09-04 18:01:32 UTC


README

邮件工厂

变更日志

- 3.0.0 : upgrade to symfony/mailjet-mailer >= 6.4. !!! changement de port de 465 à 587 par défaut
  - Ajout de la prise en compte de MAILERFACTORY_PORT pour remettre le port à 465
- 2.1.0 : Add attachFromContent & embedFromContent methods
- 2.0.0 : php 8.2 mini
- 1.0.5 : Add 'name' => 'name@email.com' format
- 1.0.4 : Fix bugs

测试

  • 要求:最低PHP 8.2
  • 使用docker/composer.sh来使用正确的PHP版本。

导入

composer require wyzen-packages/mailer-factory

用法

环境变量

常用

MAILERFACTORY_FROM="Support<support@email.com>"

使用DSN

MAILERFACTORY_DSN=smtp://user:pass@host:port?verify_peer=1
  • verify_peer
    • 1(默认)=> TLS
    • 0 => 无TLS

使用显式变量

MAILERFACTORY_PROVIDER=smtp | mailjet
MAILERFACTORY_HOST=host
MAILERFACTORY_TLS=true
MAILERFACTORY_PORT=1025
MAILERFACTORY_USER=user | api_public_key
MAILERFACTORY_PASSWORD=password | api_private_key

无重复的邮件格式

所有邮件都是唯一的

$to = [
        'vde<vde@email.com>',
        'user1@email.com, user2@email.com  ; user3<user3@email.com>',
        'other@email.com',
        'duplicate<other@email.com>',
        'user5 name' => 'user5@email.com',
    ];

// OR
$to = 'user1@email.com, user2@email.com  ; user3<user3@email.com>';

// Transform emails to array of Address
$tb_emails = $mailer::fixEmails($to);

发送邮件

$mailer = MailerFactory::getMailer($this->smtp);
$to = 'user1@email.com, user2@email.com  ; user3<user3@email.com>';
$cc = [
    'user1@email.com, user2@email.com  ; user3<user3@email.com>',
    'user4<user4@email.com>',
]
$mailer->setTo($to);
$mailer->setCc($to);
// $mailer->setBcc($to);
$mailer->setReplyTo('REPLY<reply@email.com>');

$mailer->setSubject('Subject message');
$mailer->setText('Only text format');
$mailer->setHtml('<h1>HTML format mail</h1>');
try{
    $mailer->sendMessage();
}
catch (TransportExceptionInterface $ex){

}

带有附件的发送邮件

$mailer = MailerFactory::getMailer($this->smtp);
$to = 'user1@email.com';
$mailer->setTo($to);
$mailer->setReplyTo('REPLY<reply@email.com>');
$mailer->attach(__DIR__ . '/../images/approved.png', 'Image Approved');

$mailer->setSubject('Subject message');
$mailer->setText('Only text format');
$mailer->setHtml('<h1>HTML format mail</h1>');
try{
    $mailer->sendMessage();
}
catch (TransportExceptionInterface $ex){

}

带有嵌入图片的发送邮件

$mailer = MailerFactory::getMailer($this->smtp);
$to = 'user1@email.com';
$mailer->setTo($to);
$mailer->setReplyTo('REPLY<reply@email.com>');
$mailer->embedImage(__DIR__ . '/../images/suricate.jpg', 'embedimage');

$mailer->setSubject('Subject message');
$mailer->setText('Only text format');
$mailer->setHtml('<h1>HTML format mail</h1><img src="cid:embedimage">');
try{
    $mailer->sendMessage();
}
catch (TransportExceptionInterface $ex){

}