Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/symfony/mailer
Helps sending emails
https://github.com/symfony/mailer
component php symfony symfony-component
Last synced: 3 days ago
JSON representation
Helps sending emails
- Host: GitHub
- URL: https://github.com/symfony/mailer
- Owner: symfony
- License: mit
- Created: 2019-03-30T11:54:41.000Z (over 5 years ago)
- Default Branch: 7.1
- Last Pushed: 2024-10-27T15:24:18.000Z (about 2 months ago)
- Last Synced: 2024-10-29T14:53:49.864Z (about 1 month ago)
- Topics: component, php, symfony, symfony-component
- Language: PHP
- Homepage: https://symfony.com/mailer
- Size: 630 KB
- Stars: 1,485
- Watchers: 15
- Forks: 46
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-php - Symfony Mailer - A powerful library for creating and sending emails. (Table of Contents / Email)
- awesome-php-cn - Symfony Mailer - 一个强大的库创建和发送电子邮件. (目录 / 电子邮件 Email)
- awesome-projects - Symfony Mailer - A powerful library for creating and sending emails. (PHP / Email)
- awesome-php - Symfony Mailer - A powerful library for creating and sending emails. (Table of Contents / Email)
README
Mailer Component
================The Mailer component helps sending emails.
Getting Started
---------------```bash
composer require symfony/mailer
``````php
use Symfony\Component\Mailer\Transport;
use Symfony\Component\Mailer\Mailer;
use Symfony\Component\Mime\Email;$transport = Transport::fromDsn('smtp://localhost');
$mailer = new Mailer($transport);$email = (new Email())
->from('[email protected]')
->to('[email protected]')
//->cc('[email protected]')
//->bcc('[email protected]')
//->replyTo('[email protected]')
//->priority(Email::PRIORITY_HIGH)
->subject('Time for Symfony Mailer!')
->text('Sending emails is fun again!')
->html('See Twig integration for better HTML integration!
');$mailer->send($email);
```To enable the Twig integration of the Mailer, require `symfony/twig-bridge` and
set up the `BodyRenderer`:```php
use Symfony\Bridge\Twig\Mime\BodyRenderer;
use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\Mailer\EventListener\MessageListener;
use Symfony\Component\Mailer\Mailer;
use Symfony\Component\Mailer\Transport;
use Twig\Environment as TwigEnvironment;$twig = new TwigEnvironment(...);
$messageListener = new MessageListener(null, new BodyRenderer($twig));$eventDispatcher = new EventDispatcher();
$eventDispatcher->addSubscriber($messageListener);$transport = Transport::fromDsn('smtp://localhost', $eventDispatcher);
$mailer = new Mailer($transport, null, $eventDispatcher);$email = (new TemplatedEmail())
// ...
->htmlTemplate('emails/signup.html.twig')
->context([
'expiration_date' => new \DateTimeImmutable('+7 days'),
'username' => 'foo',
])
;
$mailer->send($email);
```Resources
---------* [Documentation](https://symfony.com/doc/current/mailer.html)
* [Contributing](https://symfony.com/doc/current/contributing/index.html)
* [Report issues](https://github.com/symfony/symfony/issues) and
[send Pull Requests](https://github.com/symfony/symfony/pulls)
in the [main Symfony repository](https://github.com/symfony/symfony)