Como inspeccionar el contenido del correo saliente?
Pregunta
Hay varios módulos que el correo electrónico de envío desde mi sitio: Reglas, Gatillo, usuario, ...
Estoy buscando un lugar para establecer un drupal_set_message()
e imprimir el contenido de correo electrónico. En qué parte del código sería el mejor lugar para eso?
Solución
Se puede usar hook_mail_alter()
a obtener (y modificar) el contenido de un mensaje de correo electrónico antes de que sea enviada:
function mymodule_mail_alter(&$message) {
dpm($message);
}
Una cosa a tener en cuenta es que no todos los módulos utilizan drupal_mail()
, la función que va a llamar hook_mail_alter()
, por diversas razones. En ese caso, tendrá que identificar dónde en el código del módulo, el correo se envía hacia fuera y ver si proporcionan sus propios ganchos alter: mirada para las funciones de drupal_alter('foo')
(implementado a través de hook_foo_alter()
), module_implements('foo')
, module_invoke('foo')
o module_invoke_all('foo')
(todo implementado por hook_foo()
).
De no ser así, puede que tenga que añadir temporalmente la llamada dpm()
directamente al módulo en el lugar correcto.