Как проверить содержимое исходящей электронной почты?
Есть несколько модулей, которые отправляют электронную почту с моего сайта: Правила, Триггер, Пользователь,...
Я ищу место, где можно установить drupal_set_message()
и распечатать содержимое электронной почты. Где в коде было бы лучшее место для этого?
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()
непосредственно в модуль в нужном месте.