Программно отправить почту Drupal 8

Tags: 
Drupal version: 

Если надо отправить почту без крякозябр с кодировками, и от имени "Не имя сайта"

use Drupal\Component\Utility\Mail;
/**
 * Implements hook_mail().
 */
function custom_mail($key, &$message, $params) {
$options = array(
    'langcode' => $message['langcode'],
);
 $mail = \Drupal::config('system.site')->get('mail');
 switch ($key) {

     case 'add_new_comment':
         $message['from'] =  Mail::formatDisplayName('ООО "ХХХ"') . ' <' . $mail . '>';
         //Строчка ниже избавит вас от проблем с кодировкой заголовка
         $message['headers']['From'] =  Mail::formatDisplayName('ООО "ХХХ"') . ' <' . $mail . '>';
         $message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed; delsp=yes';
         $message['subject'] = t('Добавлен комментарий: @title', array('@title' => $params['node_title']), $options);
         $message['body'][] = $params['message'];
         break;
 }
}

Чтобы отправить почту пишем такой код в нужном вам месте

    $mailManager = \Drupal::service('plugin.manager.mail');
    $module = 'custom';
    $key = 'add_new_comment';
    $to = 'vasya@mail.ru';
    $params['message'] =  'Сообщение';
    $params['node_title'] = $node->label();
    $langcode = 'ru';
    $send = true;
    $result = $mailManager->mail($module, $key, $to, $langcode, $params, NULL, $send);

 

Tags

module (3) mysql (2) drush (2) pass (1) bootstrap (1) update (1) modal (1) theme (1) css (1) proxy (1) custom (1) sftp (1) php (1) twig (1) mail (1) backups (1) telegram (1) new year (1) Вёрстка (1) ssh (1) Интеграция вёрстки (1)