Aquí hay otro enfoque. (El código está disponible en este sandbox ).
nodemail.info
name = Nodemail
description = Sends node e-mails.
core = 7.x
nodemail.install '
<?php
function nodemail_enable() {
$current = variable_get('mail_system', array('default-system' => 'DefaultMailSystem'));
$addition = array('nodemail' => 'NodemailMailSystem');
variable_set('mail_system', array_merge($current, $addition));
}
function nodemail_disable() {
$mail_system = variable_get('mail_system', array('default-system' => 'DefaultMailSystem'));
unset($mail_system['nodemail']);
variable_set('mail_system', $mail_system);
}
nodemail.module
<?php
class NodemailMailSystem extends DefaultMailSystem {
public function format(array $message) {
$message['body'] = implode("\n\n", $message['body']);
$message['body'] = drupal_wrap_mail($message['body']);
return $message;
}
}
function nodemail_mail($key, &$message, $params) {
switch ($key) {
case 'node_mail':
$message['headers']['Content-Type'] = 'text/html; charset=UTF-8;';
$message['subject'] = $params['subject'];
$message['body'][] = $params['body'];
break;
}
}
function nodemail_node_insert($node) {
if ($node->type == 'mycontenttype') {
$params['subject'] = 'Node "' . $node->title . '" was created';
$params['body'] = render(node_view($node));
$to = variable_get('site_mail', '');
$from = 'noreply@example.com';
$lang = language_default();
drupal_mail('nodemail', 'node_mail', $to, $lang, $params, $from);
}
}
El contenido del archivo de instalación y la clase NodemailMailSystem se utilizan para permitir que este módulo envíe correos electrónicos html. Las otras 2 funciones son implementaciones de hook_mail () y hook_node_insert () que se ocupan de enviar los correos electrónicos cuando mycontenttype
se crea un nodo de . Una cosa que deberá tener en cuenta es que Drupal utilizará el archivo de plantilla de nodo del tema que se está utilizando para las páginas de creación de nodo (o el nodo central.tpl.php si el tema no lo tiene) para la vista de nodo . También puede consultar las funciones node_view () y drupal_mail () que se utilizan aquí. Todo esto debería funcionar con la funcionalidad principal de Drupal 7 (no se necesitan módulos contribuidos).