Как проверить содержимое исходящей электронной почты?


Есть несколько модулей, которые отправляют электронную почту с моего сайта: Правила, Триггер, Пользователь,...

Я ищу место, где можно установить drupal_set_message() и распечатать содержимое электронной почты. Где в коде было бы лучшее место для этого?

Author: Berdir, 2011-04-11

1 answers

Вы можете использовать hook_mail_alter() чтобы получить (и изменить) содержимое сообщения электронной почты до его отправки:

function mymodule_mail_alter(&$message) {
  dpm($message);
}

Следует иметь в виду, что не все модули используют drupal_mail(), функция, которая будет вызывать hook_mail_alter(), по разным причинам. В этом случае вам нужно будет определить, где в коде модуля отправляется почта, и посмотреть, предоставляют ли они свои собственные крючки для изменения: найдите функции drupal_alter('foo') (реализованные через hook_foo_alter()), module_implements('foo'), module_invoke('foo'), или module_invoke_all('foo') (все реализовано hook_foo()).

В противном случае вам, возможно, придется временно добавить вызов dpm() непосредственно в модуль в нужном месте.

 7
Author: , 2011-04-11 02:24:03