Drupal 5: Sending a CCK node in an HTML email when its created using PEAR libraries
Although I am a big fan of the Drupal Forms API, sometimes I’ll use CCK node forms as a quick and flexible alternative. This allows you to store the user submitted data as well as process the form. Here is a code snippet you can add to send the html generated from the node in an HTML email:
<?php
function MYMODULE_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
if ($node->type == 'MYNODETYPE' && $op=='insert') {
$emailTo = variable_get('site_mail', 'MYEMAILADDRESS');
$emailFrom = 'info@' . $_SERVER['HTTP_HOST'];
// send email
_MYMODULE_send_node_email($node, $emailTo, $emailFrom);
}
}
function _MYMODULE_send_node_email(&$node, $emailTo, $emailFrom) {
require_once('Mail.php');
require_once('Mail/mime.php');
// create node html
$html = node_view($node, TRUE, FALSE, FALSE);
// get a list of node types
$nodeTypes = node_get_types();
$crlf = "\n";
$hdrs = array(
'From' => $emailFrom,
'Subject' => $nodeTypes[$node->type]->name . ' Submitted',
);
$mime = new Mail_mime($crlf);
//$mime->setTXTBody($text); //TODO: you should also include a text version of your email
$mime->setHTMLBody($html);
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
$mail =& Mail::factory('mail');
$mail->send($emailTo, $hdrs, $body);
}
?>