Vydáno:
Zapomeňte na posílání e-mailu z vlastního modulu pomocí funkce mail()
v php. Často zapomenete na potřebné hlavičky, musíte nastavovat kódování a vůbec se starat o věci, které s prostým posláním textu do schránky nijak nesouvisí. Udělejte to po Drupalovsku. Základní posílání e-mailů v Drupalu se skládá z několika částí. První věc je funkce hook_mail()
, ve které si připravte textace a nastavení všech variant e-mailů, které budete chtít modulem odesílat.
function hook_mail($key, &$message, $params) { $language = $message['language']; $say = $params['say']; switch ($key) { case 'fox': $message['subject'] = t("You, stupid fox!"); $message['body'][] = t("Nobody know, what does the fox say. We just heard some shrieking: ").$text; break; case 'dog': $message['subject'] = t("For my doggy"); $message['body'][] = t("What does the dog say? ").$say; break; } }
Druhou částí je samotné odesílání pomocí funkce drupal_mail()
. Ta může vypadat takto:
/** * @param string název modulu * @param string klíč, který se pošle funkci hook_mail * @param string příjemce e-mailu * @param string jazyk * @param array parametry, které se zašlou do hook_mail */ drupal_mail('muj_modul', 'fox', 'fox@recipient.cz', $language, $params); // nebo drupal_mail('muj_modul', 'dog', 'fox@recipient.cz', $language, $params);
Příjemce e-mailů může být např. i ve tvaru "fox@recipient.cz <Liška>" nebo "fox@recipient.cz, anotherfox@recipient.cz"
pro více příjemců. Odesílatele e-mailu je možné zadat jako 6. parametr ve funkci drupal_mail()
. Další možností je vložit ji do proměnné $message["from"]
v hook_mail()
. Tady je možné nadefinovat i další hlavičky, se kterýma se má má mail poslat