私のカスタムモジュールのいくつかのフォームでは、条件がメールの送信をトリガーします。
_ public function save(array $form, FormStateInterface $form_state) {
$entity = $this->entity;
$status = parent::save($form, $form_state);
$values=$form_state->getValues();
if (($values['isurgent']['value']==1) && ($values['status']['value']==1)) {
$iSeliste = \Drupal::currentUser()->id();
$oSeliste = \Drupal::entityTypeManager()->getStorage('person')->load($iSeliste);
$sSelite = $oSeliste->firstname->value . " " . $oSeliste->lastname->value;
$sAction = ($values['action'][0]['value']==0)?"offre":"demande";
$sDueDate = $values['duedate'][0]['value']->format("d/m/Y");
_sendEmailForUrgentService($sSelite, $sAction, $sDueDate);
}
_
sel.module:
_function _sendEmailForUrgentService($sSeliste, $sAction, $sDueDate) {
...some code...
\Drupal::service('plugin.manager.mail')->mail('sel', 'emailforurgentservice', $sTo, 'fr', $params);
\Drupal::logger('sel')->info('Courriel pour service urgent : envoi effectué.');
}
_
私のhook_mail:
_function sel_mail($key, &$message, $params) {
$sFrom = '[redacted]';
$message['from'] = $sFrom;
$message['headers'] = array(
'Content-Type' => 'text/html',
'bcc' => $params[3],
'From' => $sFrom,
'Sender' => $sFrom,
'Return-Path' => $sFrom,
);
switch ($key) {
case 'emailforurgentservice':
$message['subject'] = '[Le Grenier à SÉL] Un service urgent requiert votre attention...';
$sBody = $params[0] . " a posté une " . $params[1] . " urgente qui est valide jusqu'au " . $params[2] . ".";
$message['body'][] = check_markup(nl2br($sBody), 'full_html');
break;
}
}
_
そして、私のテーマテンプレートフォルダー(mysite/web/themes/contrib/mayo/templates /)には、メールテンプレート_swiftmailer--sel--emailforurgentservice.html.twig
_があります。
_<html>
<head>
<style type="text/css"> table tr td {
font-family: Candara;
font-size: 14px;
}
</style>
</head>
<body>
<div>
<table width="800px" cellpadding="0" cellspacing="0">
<tr>
<td>
<div style="padding: 0px 0px 0px 0px;">
<p>
Chers SÉListes,<br><br>
{{ body }} <br>
Vous pouvez la consulter <a href="http://lejardindepoissy.org/?q=sel_catalogue\">ici</a>.";<br>
Si vous ne la trouvez pas, c'est peut-être qu'elle a déjà été satisfaite.";<br><br>
--<br>
Le Grenier à SÉL
</p>
</div>
</td>
</tr>
</table>
</div>
</body>
</html>
_
メールが送信されます。ボディ以外はすべてOK(From、To、Bcc、Subject)です!
テンプレートで定義したものの代わりに、function sel_mail()
で定義されている_$sBody
_のコンテンツしかありません。
何か私が間違っている考えはありますか?