Skip to content

Commit 4281149

Browse files
FRW-229: Remove Swiftmailer dependency (#9624)
FRW-229 Remove Swiftmailer dependency
1 parent a924f4d commit 4281149

File tree

5 files changed

+100
-0
lines changed

5 files changed

+100
-0
lines changed

composer.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
"php": ">=8.0",
88
"spryker/kernel": "^3.33.0",
99
"spryker/mail": "^4.6.0",
10+
"spryker/mail-extension": "^1.0.0",
11+
"spryker/transfer": "^3.25.0",
1012
"spryker/user-password-reset-extension": "^1.0.0"
1113
},
1214
"require-dev": {

dependency.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"include": {
3+
"spryker/transfer": "Provides transfer objects definition with `::get*OrFail()` functionality."
4+
}
5+
}

src/Spryker/Shared/UserPasswordResetMail/Transfer/user_password_reset_mail.transfer.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
<property name="type" type="string"/>
77
<property name="recipients" type="MailRecipient[]" singular="recipient"/>
88
<property name="resetPasswordLink" type="string"/>
9+
<property name="subject" type="string"/>
10+
<property name="templates" type="MailTemplate[]" singular="template"/>
911
</transfer>
1012

1113
<transfer name="MailRecipient">
@@ -19,4 +21,9 @@
1921
<property name="username" type="string"/>
2022
</transfer>
2123

24+
<transfer name="MailTemplate">
25+
<property name="name" type="string"/>
26+
<property name="isHtml" type="bool"/>
27+
</transfer>
28+
2229
</transfers>
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
<?php
2+
3+
/**
4+
* Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5+
* Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6+
*/
7+
8+
namespace Spryker\Zed\UserPasswordResetMail\Communication\Plugin\Mail;
9+
10+
use Generated\Shared\Transfer\MailRecipientTransfer;
11+
use Generated\Shared\Transfer\MailTemplateTransfer;
12+
use Generated\Shared\Transfer\MailTransfer;
13+
use Spryker\Zed\Kernel\Communication\AbstractPlugin;
14+
use Spryker\Zed\MailExtension\Dependency\Plugin\MailTypeBuilderPluginInterface;
15+
16+
/**
17+
* @method \Spryker\Zed\UserPasswordResetMail\UserPasswordResetMailConfig getConfig()
18+
* @method \Spryker\Zed\UserPasswordResetMail\Communication\UserPasswordResetMailCommunicationFactory getFactory()
19+
*/
20+
class UserPasswordResetMailTypeBuilderPlugin extends AbstractPlugin implements MailTypeBuilderPluginInterface
21+
{
22+
/**
23+
* @var string
24+
*/
25+
protected const MAIL_TYPE = 'user password restore';
26+
27+
/**
28+
* @var string
29+
*/
30+
protected const MAIL_TEMPLATE_HTML = 'userPasswordResetMail/mail/restore_password.html.twig';
31+
32+
/**
33+
* @var string
34+
*/
35+
protected const MAIL_TEMPLATE_TEXT = 'userPasswordResetMail/mail/restore_password.text.twig';
36+
37+
/**
38+
* @var string
39+
*/
40+
protected const GLOSSARY_KEY_MAIL_SUBJECT = 'mail.auth.restore_password.subject';
41+
42+
/**
43+
* {@inheritDoc}
44+
* - Returns the name of mail for a user password restore mail.
45+
*
46+
* @api
47+
*
48+
* @return string
49+
*/
50+
public function getName(): string
51+
{
52+
return static::MAIL_TYPE;
53+
}
54+
55+
/**
56+
* {@inheritDoc}
57+
* - Builds the `MailTransfer` with data for a user password restore mail.
58+
*
59+
* @api
60+
*
61+
* @param \Generated\Shared\Transfer\MailTransfer $mailTransfer
62+
*
63+
* @return \Generated\Shared\Transfer\MailTransfer
64+
*/
65+
public function build(MailTransfer $mailTransfer): MailTransfer
66+
{
67+
return $mailTransfer
68+
->setSubject(static::GLOSSARY_KEY_MAIL_SUBJECT)
69+
->addTemplate(
70+
(new MailTemplateTransfer())
71+
->setName(static::MAIL_TEMPLATE_HTML)
72+
->setIsHtml(true),
73+
)
74+
->addTemplate(
75+
(new MailTemplateTransfer())
76+
->setName(static::MAIL_TEMPLATE_TEXT)
77+
->setIsHtml(false),
78+
)
79+
->addRecipient(
80+
(new MailRecipientTransfer())
81+
->setEmail($mailTransfer->getUserOrFail()->getUsernameOrFail()),
82+
);
83+
}
84+
}

src/Spryker/Zed/UserPasswordResetMail/Communication/Plugin/Mail/UserPasswordResetMailTypePlugin.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
use Spryker\Zed\Mail\Dependency\Plugin\MailTypePluginInterface;
1313

1414
/**
15+
* @deprecated Use {@link \Spryker\Zed\UserPasswordResetMail\Communication\Plugin\Mail\UserPasswordResetMailTypeBuilderPlugin} instead.
16+
*
1517
* @method \Spryker\Zed\UserPasswordResetMail\UserPasswordResetMailConfig getConfig()
1618
* @method \Spryker\Zed\UserPasswordResetMail\Communication\UserPasswordResetMailCommunicationFactory getFactory()
1719
*/

0 commit comments

Comments
 (0)