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 @@