Comment inspecter le contenu des courriels sortants?
Question
Il y a plusieurs modules qui envoient un courriel mon site: Règles, Trigger, utilisateur, ...
Je cherche un endroit pour définir un drupal_set_message()
et imprimer le contenu du courrier électronique. Où dans le code serait le meilleur endroit pour cela?
La solution
Vous pouvez utiliser hook_mail_alter()
obtenir (et modifier) ??le contenu d'un message électronique avant qu'il ne soit envoyé:
function mymodule_mail_alter(&$message) {
dpm($message);
}
Une chose à garder à l'esprit est que tous les modules utilisent drupal_mail()
, la fonction qui va appeler hook_mail_alter()
, pour diverses raisons. Dans ce cas, vous devrez identifier où dans le code du module courrier est envoyé et voir si elles fournissent leurs propres crochets alter: look pour les fonctions drupal_alter('foo')
(via hook_foo_alter()
), module_implements('foo')
, module_invoke('foo')
ou module_invoke_all('foo')
(tous mis en œuvre par hook_foo()
).
A défaut, vous pouvez avoir à ajouter temporairement l'appel dpm()
directement au module au bon endroit.