Como enviar email con drupal_mail en Drupal7

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', "micorreo@gmail.com", 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. 

Comparte este artículo