¿Cómo enviar un correo electrónico mediante programación?
45
Me gustaría utilizar el sistema de correo electrónico de Drupal para enviar un correo electrónico mediante programación desde mi módulo personalizado. ¿Es eso posible?
function MODULENAME_mail ($key,&$message, $params){switch($key){case'mymail':// Set headers etc
$message['to']='[email protected]';
$message['subject']= t('Hello');
$message['body'][]= t('Hello @username,', array('@username'=> $params['username']));
$message['body'][]= t('The main part of the message.');break;}}
Tiene razón, pero para aclarar un poco, hook_mail le proporciona una forma de estructurar y asignar un tema a un correo electrónico basado en una clave arbitraria que usted defina. drupal_mail () es lo que llamas para enviar un correo electrónico. Pase la clave de la estructura que le gustaría usar. (y el módulo que responde a esa clave)
Jason Smith
99
En este ejemplo $message['to']está codificado [email protected]. Omita esto y el mensaje se enviará al destinatario que se especifica cuando drupal_mail()se llama.
pfrenssen
12
Si desea una forma más sencilla de enviar correos electrónicos, consulte Correo simple ; es un módulo en el que estoy trabajando para hacer que el envío de correos electrónicos con Drupal 7+ sea mucho más fácil, y no requiere implementaciones de gancho adicionales ni conocimiento de MailSystem. Enviar un correo electrónico es tan simple como:
Puede usar este código en un gancho de su elección dentro de su módulo personalizado:
function yourmodulename_mail($from ='default_from', $to, $subject, $message){
$my_module ='yourmodulename';
$my_mail_token = microtime();if($from =='default_from'){// Change this to your own default 'from' email address.
$from = variable_get('system_mail','[email protected]');}
$message = array('id'=> $my_module .'_'. $my_mail_token,'to'=> $to,'subject'=> $subject,'body'=> array($message),'headers'=> array('From'=> $from,'Sender'=> $from,'Return-Path'=> $from,),);
$system = drupal_mail_system($my_module, $my_mail_token);
$message = $system->format($message);if($system->mail($message)){return TRUE;}else{return FALSE;}}
Entonces puede usar la función anterior de esta manera:
$user = user_load($userid);// load a user using its uid
$usermail =(string) $user->mail;// load user email to send a mail to it OR you can specify an email here to which the email will be sent
customdraw_mail('default_from', $usermail,'You Have Won a Draw -- this is the subject','Congrats! You have won a draw --this is the body');
Respuestas:
Usando hook_mail y drupal_mail puedes crear y enviar un correo electrónico.
Implemente un correo electrónico use hook_mail:
Para enviar un correo use drupal_mail:
Obviamente reemplace los parámetros: $ key debería ser igual a 'mymail'
Un correo electrónico se envía en unos pocos pasos:
fuente
$message['to']
está codificado[email protected]
. Omita esto y el mensaje se enviará al destinatario que se especifica cuandodrupal_mail()
se llama.Si desea una forma más sencilla de enviar correos electrónicos, consulte Correo simple ; es un módulo en el que estoy trabajando para hacer que el envío de correos electrónicos con Drupal 7+ sea mucho más fácil, y no requiere implementaciones de gancho adicionales ni conocimiento de MailSystem. Enviar un correo electrónico es tan simple como:
fuente
Puede utilizar una forma más sencilla de enviar correos electrónicos, verifique el sistema de correo ; Es un módulo.
fuente
Puede usar este código en un gancho de su elección dentro de su módulo personalizado:
Entonces puede usar la función anterior de esta manera:
fuente