FOSUserBundle で Mailer クラスを拡張する方法を知っている人はいますか?
私は非常に基本的な親の電子メール チェックを実装しています (すべての検証は、親の電子メールを強制的に入力するためにフォームで行われます)。親の電子メール フィールドがユーザー エンティティに入力されている場合、そのアドレスではなく、そのアドレスに電子メールを送信する必要があります。ユーザーの電子メール。
これまでに次のことを試しました。
namespace SSERugby\UserBundle\Mailer;
use FOS\UserBundle\Mailer\Mailer as BaseMailer;
use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
use Symfony\Component\Routing\RouterInterface;
class Mailer extends BaseMailer
{
public function sendConfirmationEmailMessage(UserInterface $user)
{
$email = $user->getEmail();
$parentEmail = $user->getParentEmail();
if(isset($parentEmail)&&(trim($parentEmail)!='')){
$email = $parentEmail;
}
$template = $this->parameters['confirmation.template'];
$url = $this->router->generate('fos_user_registration_confirm', array('token' => $user->getConfirmationToken()), true);
$rendered = $this->templating->render($template, array(
'user' => $user,
'confirmationUrl' => $url
));
$this->sendEmailMessage($rendered, $this->parameters['from_email']['confirmation'], $email);
}
}
オーバーライドされたクラスを無視してデフォルトを使用しているようですが、テストする前にキャッシュをクリアしました。
ありがとう