Muchos como yo, hemos tenido la necesidad de enviar un correo programáticamente y no sabemos como.
Hoy les enseñaré como hacer un envío de correo con drupal_mail.
//Se establecen los parametros que serán enviado a la funcion hook_mail
$my_node = node_load(998);
$params = array(
'subject' => $my_node->title, // aquí enviamos el título del nodo
'body' => "<p>Esto es un mensaje</p>", // aquí ponemos un mensaje
);
//ejecutamos la función drupal_mail
//aquí debemos usar dos nombres que sean unicos, y estos nombres los usaremos en los primeros parametros de la funcion drupal_mail
drupal_mail('my_module', 'my_module_mail_example', "[email protected]", language_default(), $params);
drupal_set_message("Email enviado");
/**
* Implementation of hook_mail().
*/
//aquí usaremos el nombre del primer parametro de la funcion drupal_mail y la uniremos con _mail para formar my_module_mail
function my_module_mail($key, &$message, $params){
// Establezca el tipo de contenido de correo a html para enviar un correo electrónico en html (opcional).
$message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed';
// Graba el tema y el cuerpo de params y lo agrega al mensaje.
$message['subject'] = $params['subject'];
$message['body'][] = $params['body']; // Drupal 7
//$message['body'] = $params['body']; // Drupal 6,
switch ($key) {
case "my_module_mail_example":
// Hacer otros cambios aquí si desea ...
break;
}
}
Este código está muy bien explicado.
Para poder usar el drupal_mail, debemos primero crear la variable $params y enviarla a la función drupal_mail.
Luego el primer parámetro que usamos en el drupal_mail, debemos usarlo para crear el hook_mail.
En este caso, sustituimos la palabra hook por el parámetro completo que aparece en el drupal_mail y listo.
Se envía un correo.
Espero que les haya servidor y Dios les bendiga.