From b2527039b7b7c4ee3ac88e788c34c2a6ff1b671e Mon Sep 17 00:00:00 2001 From: fabrixxm Date: Tue, 20 Jan 2015 19:19:58 +0100 Subject: [PATCH] add text-only email option add a checkbok to notification settings. if checked, html body is not added to email. --- include/Emailer.php | 21 +++++++++++++----- mod/settings.php | 22 ++++++++++++------- view/templates/settings.tpl | 4 +++- .../theme/decaf-mobile/templates/settings.tpl | 4 +++- .../theme/frost-mobile/templates/settings.tpl | 4 +++- 5 files changed, 39 insertions(+), 16 deletions(-) diff --git a/include/Emailer.php b/include/Emailer.php index 9679dc952c..e11954200c 100644 --- a/include/Emailer.php +++ b/include/Emailer.php @@ -20,6 +20,11 @@ class Emailer { call_hooks('emailer_send_prepare', $params); + $email_textonly = False; + if (x($params,"uid")) { + $email_textonly = get_pconfig($params['uid'], "system", "email_textonly"); + } + $fromName = email_header_encode(html_entity_decode($params['fromName'],ENT_QUOTES,'UTF-8'),'UTF-8'); $messageSubject = email_header_encode(html_entity_decode($params['messageSubject'],ENT_QUOTES,'UTF-8'),'UTF-8'); @@ -44,11 +49,16 @@ class Emailer { "--" . $mimeBoundary . "\n" . // plain text section "Content-Type: text/plain; charset=UTF-8\n" . "Content-Transfer-Encoding: base64\n\n" . - $textBody . "\n" . - "--" . $mimeBoundary . "\n" . // text/html section - "Content-Type: text/html; charset=UTF-8\n" . - "Content-Transfer-Encoding: base64\n\n" . - $htmlBody . "\n" . + $textBody . "\n"; + + if (!$email_textonly && !is_null($htmlBody)){ + $multipartMessageBody .= + "--" . $mimeBoundary . "\n" . // text/html section + "Content-Type: text/html; charset=UTF-8\n" . + "Content-Transfer-Encoding: base64\n\n" . + $htmlBody . "\n"; + } + $multipartMessageBody .= "--" . $mimeBoundary . "--\n"; // message ending // send the message @@ -58,6 +68,7 @@ class Emailer { 'body' => $multipartMessageBody, 'headers' => $messageHeader ); + echo "
"; var_dump($hookdata); killme();
 		call_hooks("emailer_send", $hookdata);
 		$res = mail(
 			$hookdata['to'],							// send to address
diff --git a/mod/settings.php b/mod/settings.php
index 8fa0d86a90..799a5faa17 100644
--- a/mod/settings.php
+++ b/mod/settings.php
@@ -395,6 +395,8 @@ function settings_post(&$a) {
 	$post_joingroup   = (($_POST['post_joingroup'] == 1) ? 1: 0);
 	$post_profilechange   = (($_POST['post_profilechange'] == 1) ? 1: 0);
 
+	$email_textonly   = (($_POST['email_textonly'] == 1) ? 1 : 0);
+
 	$notify = 0;
 
 	if(x($_POST,'notify1'))
@@ -495,6 +497,7 @@ function settings_post(&$a) {
 	set_pconfig(local_user(),'system','post_joingroup', $post_joingroup);
 	set_pconfig(local_user(),'system','post_profilechange', $post_profilechange);
 
+	set_pconfig(local_user(),'system','email_textonly', $email_textonly);
 
 	if($page_flags == PAGE_PRVGROUP) {
 		$hidewall = 1;
@@ -505,7 +508,7 @@ function settings_post(&$a) {
 			}
 			else {
 				notice( t('Private forum has no privacy permissions and no default privacy group.') . EOL);
-			} 
+			}
 		}
 	}
 
@@ -656,7 +659,7 @@ function settings_content(&$a) {
 		}
 
 
-		$r = q("SELECT clients.*, tokens.id as oauth_token, (clients.uid=%d) AS my 
+		$r = q("SELECT clients.*, tokens.id as oauth_token, (clients.uid=%d) AS my
 				FROM clients
 				LEFT JOIN tokens ON clients.client_id=tokens.client_id
 				WHERE clients.uid IN (%d,0)",
@@ -830,7 +833,7 @@ function settings_content(&$a) {
 				$is_experimental = file_exists('view/theme/' . $th . '/experimental');
 				$unsupported = file_exists('view/theme/' . $th . '/unsupported');
 				$is_mobile = file_exists('view/theme/' . $th . '/mobile');
-				if (!$is_experimental or ($is_experimental && (get_config('experimentals','exp_themes')==1 or get_config('experimentals','exp_themes')===false))){ 
+				if (!$is_experimental or ($is_experimental && (get_config('experimentals','exp_themes')==1 or get_config('experimentals','exp_themes')===false))){
 					$theme_name = (($is_experimental) ?  sprintf("%s - \x28Experimental\x29", $f) : $f);
 					if($is_mobile) {
 						$mobile_themes[$f]=$theme_name;
@@ -1078,8 +1081,8 @@ function settings_content(&$a) {
 		'items' => array('expire_items',  t("Expire posts:"), $expire_items, '', array(t('No'),t('Yes'))),
 		'notes' => array('expire_notes',  t("Expire personal notes:"), $expire_notes, '', array(t('No'),t('Yes'))),
 		'starred' => array('expire_starred',  t("Expire starred posts:"), $expire_starred, '', array(t('No'),t('Yes'))),
-		'photos' => array('expire_photos',  t("Expire photos:"), $expire_photos, '', array(t('No'),t('Yes'))),		
-		'network_only' => array('expire_network_only',  t("Only expire posts by others:"), $expire_network_only, '', array(t('No'),t('Yes'))),		
+		'photos' => array('expire_photos',  t("Expire photos:"), $expire_photos, '', array(t('No'),t('Yes'))),
+		'network_only' => array('expire_network_only',  t("Only expire posts by others:"), $expire_network_only, '', array(t('No'),t('Yes'))),
 	);
 
 	require_once('include/group.php');
@@ -1175,10 +1178,13 @@ function settings_content(&$a) {
 		'$notify3'	=> array('notify3', t('Someone writes on your profile wall'), ($notify & NOTIFY_WALL), NOTIFY_WALL, ''),
 		'$notify4'	=> array('notify4', t('Someone writes a followup comment'), ($notify & NOTIFY_COMMENT), NOTIFY_COMMENT, ''),
 		'$notify5'	=> array('notify5', t('You receive a private message'), ($notify & NOTIFY_MAIL), NOTIFY_MAIL, ''),
-		'$notify6'  => array('notify6', t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, ''),		
-		'$notify7'  => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''),		
-		'$notify8'  => array('notify8', t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, ''),		
+		'$notify6'  => array('notify6', t('You receive a friend suggestion'), ($notify & NOTIFY_SUGGEST), NOTIFY_SUGGEST, ''),
+		'$notify7'  => array('notify7', t('You are tagged in a post'), ($notify & NOTIFY_TAGSELF), NOTIFY_TAGSELF, ''),
+		'$notify8'  => array('notify8', t('You are poked/prodded/etc. in a post'), ($notify & NOTIFY_POKE), NOTIFY_POKE, ''),
 
+		'$email_textonly' => array('email_textonly', t('Text-only notification emails'),
+									get_pconfig(local_user(),'system','email_textonly'),
+									t('Send only text notification emails body, without the html part')),
 
 		'$h_advn' => t('Advanced Account/Page Type Settings'),
 		'$h_descadvn' => t('Change the behaviour of this account for special situations'),
diff --git a/view/templates/settings.tpl b/view/templates/settings.tpl
index 8f913aac61..a3d4bf72db 100644
--- a/view/templates/settings.tpl
+++ b/view/templates/settings.tpl
@@ -86,7 +86,7 @@