--- simplenews.module.old	Sat Jun  3 05:01:47 2006
+++ simplenews.module	Fri Aug 18 20:25:46 2006
@@ -881,6 +881,7 @@ function simplenews_node_prepare($nid, $
   $node = node_load(array('nid' => $nid), NULL, TRUE);
   $node = simplenews_replace_vars($node, FALSE);
   $node = node_prepare($node);
+
   $node->body = '<h2>'.$node->title.'</h2>'."\n".$node->body;
   if ($node->s_format == 'plain') {
     $node->body = sn_html_to_text($node->body, variable_get('simplenews_hyperlinks_'.$tid, 1));
@@ -929,7 +930,10 @@ function _sn_send($timer = FALSE) {
       $md5 = md5($mail->mail . simplenews_private_key());
       $h = drupal_substr($md5, 0, 10).$mail->snid.'t'.$nid->tid;
       if ($node->s_format == 'html') {
-        $node->message = $node->body.'<p>--<br />'.l(t('Click here to unsubscribe from this newsletter'), 'newsletter/confirm/remove/'.$h, array(), NULL, NULL, TRUE).'</p>';
+				// pre and append header and footers to message
+				$node->message = variable_get('simplenews_html_header'.$term->tid, '');
+				$node->message .= $node->body.'<p>--<br />'.l(t('Click here to unsubscribe from this newsletter'), 'newsletter/confirm/remove/'.$h, array(), NULL, NULL, TRUE).'</p>';
+				$node->message .= variable_get('simplenews_html_footer'.$term->tid, '');
       }
       else {
         $node->message = $node->body."\n\n--\n".t('Unsubscribe from this newsletter:').' '.url('newsletter/confirm/remove/'.$h, NULL, NULL, TRUE);
@@ -1696,6 +1700,9 @@ function simplenews_admin_settings($term
       variable_set('simplenews_block_f_'.$term->tid, $edit['block_f'.$term->tid] ? 1 : 0);      
       variable_set('simplenews_hyperlinks_'.$term->tid, $edit['hyperlinks'.$term->tid]);      
       variable_set('simplenews_from_name_'.$term->tid, $edit['from_name'.$term->tid]);
+			variable_set('simplenews_html_header'.$term->tid, $edit['form_html_header'.$term->tid]);
+			variable_set('simplenews_html_footer'.$term->tid, $edit['form_html_footer'.$term->tid]);
+
       //valid_email_address() allows empty address, so check this first
       if ($edit['from_address'.$term->tid] == '') {
         form_set_error('from_address'.$term->tid, t("You have to supply a sender's e-mail address."));
@@ -1778,6 +1785,28 @@ function simplenews_admin_settings($term
       '#maxlength' => 128,
       '#default_value' => variable_get('simplenews_from_address_'.$term->tid, $address_default),
     );
+		$form['sn_template'] = array(
+		'#type' => 'fieldset',
+		'#title' => drupal_ucfirst(t('HTML Template')),
+		'#collapsible' => TRUE,
+		'#collapsed' => TRUE,
+		'#description' => t('Use the following text areas to define HTML header and footer. These will be applied when your newsletter is sent.'),
+		);
+		$form['sn_template']['form_html_header'.$term->tid] = array(
+		'#type' => 'textarea',
+		'#title' => t('HTML Header'),
+		'#cols' => 10,
+		'#rows' => 5,
+		'#default_value' => variable_get('simplenews_html_header'.$term->tid, ''),
+		);
+		$form['sn_template']['form_html_footer'.$term->tid] = array(
+		'#type' => 'textarea',
+		'#title' => t('HTML Footer'),
+		'#cols' => 10,
+		'#rows' => 5,
+		'#default_value' => variable_get('simplenews_html_footer'.$term->tid, ''),
+		);
+
     $form['sn_hyperlinks'] = array(
       '#type' => 'fieldset',
       '#title' => t('HTML to text conversion'),
@@ -1806,6 +1835,7 @@ function simplenews_admin_settings($term
       variable_set('simplenews_test_address_override', $edit['test_address_override']);
       variable_set('simplenews_throttle', $edit['throttle']);
       variable_set('simplenews_from_name', $edit['from_name']);
+
       //valid_email_address() allows empty address, so check this first
       if ($edit['from_address'] == '') {
         form_set_error('from_address', t("You have to supply a sender's e-mail address."));
