codememory / mailer
v1.0
2021-09-03 17:45 UTC
Requires
- codememory/config: 2.0
- codememory/fs: ^1.1
- codememory/global-config: ^1.1
- phpunit/phpunit: ^9.5
- swiftmailer/swiftmailer: ^6.2
Requires (Dev)
- symfony/var-dumper: ^5.3
This package is auto-updated.
Last update: 2024-11-29 06:22:58 UTC
README
Mailer - Отправка сообщений на почты
Установка
composer require codememory/mailer
Добавления серверов
<?php use Codememory\Components\Mail\Workers\ServerWorker; use Codememory\Components\Mail\Interfaces\ServerConfigurationInterface; require_once 'vendor/autoload.php'; $serverWorker = new ServerWorker(); $serverWorker ->add('server-name', function (ServerConfigurationInterface $configuration) { $configuration ->setHost('smtp.gmail.com') ->setPort(487) ->setMimeTypeBody('text/html') ->setCharset('utf8'); });
Добавления пользователей
<?php use Codememory\Components\Mail\Workers\UserWorker; use Codememory\Components\Mail\Interfaces\UserConfigurationInterface; require_once 'vendor/autoload.php'; $userWorker = new UserWorker(); $userWorker ->addUser('user-alias', function (UserConfigurationInterface $configuration) { $configuration ->setUsername('example@gmail.com') ->setPassword('user password') ->setServer($serverWorker->getServer('server-name')) // Сервер, добавленный ранее ->addFrom('example@gmail.com', 'Example') });
Отправка сообщений
<?php use Codememory\Components\Mail\Mailer; use Codememory\Components\Mail\Interfaces\MessageInterface; // В качестве параметра, передать добавленного пользователя $mailer = new Mailer($userWorker->getUser('user-alias')); $mailer ->createMessage(function (MessageInterface $message) { $message ->setSubject('Тема #1') ->setBody('Контент темы #1') ->addRecipientAddress('email', 'user<необязательно>') ->attach('images/image.png'); }) ->createMessage(function (MessageInterface $message) { $message ->setSubject('Тема #2') ->setBody('Контент темы #2') ->addRecipientAddress('email'); }); // Отправляем все созданные сообщения $mailer->send();
Использование MailerPack
Обязательно выполняем следующие команды
- Создание глобальной конфигурации, если ее не существует
php vendor/bin/gc-cdm g-config:init
- Merge всей конфигурации
php vendor/bin/gc-cdm g-config:merge --all
Создаем файл конфигурации mail.yaml в папке configs Данными именами, можно руководить с помощью глобальной конфигурации .config/.codememory.json
Обзор конфигурации
# configs/mail.yaml mail: #! Servers and their settings servers: server1: host: smtp.gmail.com port: 587 mimeTypeBody: text/html encryption: tls #! Users and their settings users: user1: username: "example@gmail.com" password: "password" server: "server1" from: - { email: "example@gmail.com", name: "Example" } #! The default user to use for authentication and sending messages to recipients activeUser: user1
Пример использования MailerPack
<?php use Codememory\Components\Mail\MailerPack; require_once 'vendor/autoload.php'; $mailerPack = new MailerPack($serverWorker, $userWorker); $mailer = $mailerPack->getMailer(); // Returned: Codememory\Components\Mail\Mailer