Mailing and notifications feature integration
Edit on GitHub
You are browsing a previous version of the document. The latest version is 202307.0.
The following feature integration guide expects the basic feature to be in place. This guide describes all the required steps in order to integrate a mailing provider into your project.
Install feature core
Follow the steps below to install the feature core.
Prerequisites
Install the required features:
NAME | VERSION | INTEGRATION GUIDE |
---|---|---|
Spryker Core | 202307.0 | Spryker Core feature integration |
1) Install the required modules using Composer
Install the required modules:
composer require spryker/symfony-mailer:^1.1.0 --update-with-dependencies
Verification
Make sure that the following modules have been installed:
MODULE | EXPECTED DIRECTORY |
---|---|
SymfonyMailer | spryker/symfony-mailer |
2) Set up transfer objects
Generate transfers:
console transfer:generate
Verification
Make sure that the following changes have been applied in transfer objects:
TRANSFER | TYPE | EVENT | PATH |
---|---|---|---|
Mail.subjectTranslationParameters | property | added | src/Generated/Shared/Transfer/MailTransfer |
MailRecipient.nameTranslationParameters | property | added | src/Generated/Shared/Transfer/MailRecipientTransfer |
MailSender.nameTranslationParameters | property | added | src/Generated/Shared/Transfer/MailSenderTransfer |
3) Set up behavior
Activate the following plugins:
PLUGIN | SPECIFICATION | NAMESPACE |
---|---|---|
SymfonyMailerProviderPlugin | Provides mail sending using SymfonyMailer component. |
None |
src/Pyz/Zed/Mail/MailDependencyProvider.php
<?php
namespace Pyz\Zed\Mail;
use Spryker\Zed\Kernel\Container;
use Spryker\Zed\Mail\Business\Model\Provider\MailProviderCollectionAddInterface;
use Spryker\Zed\Mail\MailConfig;
use Spryker\Zed\Mail\MailDependencyProvider as SprykerMailDependencyProvider;
use Spryker\Zed\SymfonyMailer\Communication\Plugin\Mail\SymfonyMailerProviderPlugin;
class MailDependencyProvider extends SprykerMailDependencyProvider
{
protected function extendMailProviderCollection(Container $container): Container
{
$container->extend(static::MAIL_PROVIDER_COLLECTION, function (MailProviderCollectionAddInterface $mailProviderCollection) {
$mailProviderCollection
->addProvider(new SymfonyMailerProviderPlugin(), [
MailConfig::MAIL_TYPE_ALL,
]);
return $mailProviderCollection;
});
return $container;
}
}
To verify that everything is set up correctly and send an email, see How to create and register MailTypeBuilderPlugin.
Thank you!
For submitting the form