From f6320f3319a8009c7bdf51035b226f0ea688d8bd Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 24 Feb 2012 07:11:26 +0100 Subject: Encoding for incoming mails. Fixed invalid message id (with side effect at the moment). Sending mail as text mail. Encoding name when importing mail contact. --- include/notifier.php | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'include/notifier.php') diff --git a/include/notifier.php b/include/notifier.php index 37bc6dae5..3ad433afd 100755 --- a/include/notifier.php +++ b/include/notifier.php @@ -2,6 +2,7 @@ require_once("boot.php"); require_once('include/queue_fn.php'); +require_once('include/html2plain.php'); /* * This file was at one time responsible for doing all deliveries, but this caused @@ -633,7 +634,7 @@ function notifier_run($argv, $argc){ ); if($r1 && $r1[0]['reply_to']) $reply_to = $r1[0]['reply_to']; - + $subject = (($it['title']) ? email_header_encode($it['title'],'UTF-8') : t("\x28no subject\x29")) ; // only expose our real email address to true friends @@ -646,10 +647,14 @@ function notifier_run($argv, $argc){ if($reply_to) $headers .= 'Reply-to: ' . $reply_to . "\n"; - $headers .= 'Message-id: <' . $it['uri'] . '>' . "\n"; + // for testing purposes: Collect exported mails + $file = tempnam("/tmp/friendica/", "mail-out2-"); + file_put_contents($file, json_encode($it)); + + $headers .= 'Message-Id: <' . cleanupmessageid($it['uri']) . '>' . "\n"; if($it['uri'] !== $it['parent-uri']) { - $header .= 'References: <' . $it['parent-uri'] . '>' . "\n"; + $headers .= 'References: <' . cleanupmessageid($it['parent-uri']) . '>' . "\n"; if(! strlen($it['title'])) { $r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1", dbesc($it['parent-uri']) @@ -667,10 +672,12 @@ function notifier_run($argv, $argc){ } $headers .= 'MIME-Version: 1.0' . "\n"; - $headers .= 'Content-Type: text/html; charset=UTF-8' . "\n"; + //$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n"; + $headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n"; $headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n"; $html = prepare_body($it); - $message = '' . $html . ''; + //$message = '' . $html . ''; + $message = html2plain($html); logger('notifier: email delivery to ' . $addr); mail($addr, $subject, $message, $headers); } @@ -834,6 +841,15 @@ function notifier_run($argv, $argc){ return; } +function cleanupmessageid($messageid) { + global $a; + + if (!strpos($messageid, '@')) + $messageid = str_replace(":", ".", $messageid).'@'.$a->get_hostname(); + + return($messageid); +} + if (array_search(__file__,get_included_files())===0){ notifier_run($argv,$argc); killme(); -- cgit v1.2.3 From 0ba45eb74543fc6377c48ac17d8b632e431e9467 Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 24 Feb 2012 08:50:42 +0100 Subject: Sending mail as multipart/alternative (html and plain text) (very basic by now) --- include/notifier.php | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'include/notifier.php') diff --git a/include/notifier.php b/include/notifier.php index 3ad433afd..b22e8c6f0 100755 --- a/include/notifier.php +++ b/include/notifier.php @@ -651,10 +651,10 @@ function notifier_run($argv, $argc){ $file = tempnam("/tmp/friendica/", "mail-out2-"); file_put_contents($file, json_encode($it)); - $headers .= 'Message-Id: <' . cleanupmessageid($it['uri']) . '>' . "\n"; + $headers .= 'Message-Id: <' . email_cleanupmessageid($it['uri']) . '>' . "\n"; if($it['uri'] !== $it['parent-uri']) { - $headers .= 'References: <' . cleanupmessageid($it['parent-uri']) . '>' . "\n"; + $headers .= 'References: <' . email_cleanupmessageid($it['parent-uri']) . '>' . "\n"; if(! strlen($it['title'])) { $r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1", dbesc($it['parent-uri']) @@ -671,7 +671,7 @@ function notifier_run($argv, $argc){ } } - $headers .= 'MIME-Version: 1.0' . "\n"; + /*$headers .= 'MIME-Version: 1.0' . "\n"; //$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n"; $headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n"; $headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n"; @@ -679,7 +679,8 @@ function notifier_run($argv, $argc){ //$message = '' . $html . ''; $message = html2plain($html); logger('notifier: email delivery to ' . $addr); - mail($addr, $subject, $message, $headers); + mail($addr, $subject, $message, $headers);*/ + email_send($addr, $subject, $headers, $it); } break; case NETWORK_DIASPORA: @@ -726,7 +727,7 @@ function notifier_run($argv, $argc){ // we are the relay - send comments, likes and unlikes to our conversants diaspora_send_relay($target_item,$owner,$contact); break; - } + } elseif(($top_level) && (! $walltowall)) { // currently no workable solution for sending walltowall diaspora_send_status($target_item,$owner,$contact); @@ -841,15 +842,6 @@ function notifier_run($argv, $argc){ return; } -function cleanupmessageid($messageid) { - global $a; - - if (!strpos($messageid, '@')) - $messageid = str_replace(":", ".", $messageid).'@'.$a->get_hostname(); - - return($messageid); -} - if (array_search(__file__,get_included_files())===0){ notifier_run($argv,$argc); killme(); -- cgit v1.2.3 From a74b0746b1e39d86aca4f665cfded03e6b344240 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 25 Feb 2012 01:10:45 +0100 Subject: multipart messages complete, message-id conversion done. --- include/notifier.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include/notifier.php') diff --git a/include/notifier.php b/include/notifier.php index b22e8c6f0..684395da6 100755 --- a/include/notifier.php +++ b/include/notifier.php @@ -651,10 +651,10 @@ function notifier_run($argv, $argc){ $file = tempnam("/tmp/friendica/", "mail-out2-"); file_put_contents($file, json_encode($it)); - $headers .= 'Message-Id: <' . email_cleanupmessageid($it['uri']) . '>' . "\n"; + $headers .= 'Message-Id: <' . iri2msgid($it['uri']) . '>' . "\n"; if($it['uri'] !== $it['parent-uri']) { - $headers .= 'References: <' . email_cleanupmessageid($it['parent-uri']) . '>' . "\n"; + $headers .= 'References: <' . iri2msgid($it['parent-uri']) . '>' . "\n"; if(! strlen($it['title'])) { $r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1", dbesc($it['parent-uri']) -- cgit v1.2.3 From f5c5da742da1154c26277df7ff86eebea6ffe049 Mon Sep 17 00:00:00 2001 From: friendica Date: Fri, 24 Feb 2012 20:03:13 -0800 Subject: attribution issue - don't take author name from contact if available from item. --- include/notifier.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'include/notifier.php') diff --git a/include/notifier.php b/include/notifier.php index 37bc6dae5..8ec625286 100755 --- a/include/notifier.php +++ b/include/notifier.php @@ -382,8 +382,8 @@ function notifier_run($argv, $argc){ continue; if($item['id'] == $item_id) { logger('notifier: followup: item: ' . print_r($item,true), LOGGER_DATA); - $slap = atom_entry($item,'html',$owner,$owner,false); - $atom .= atom_entry($item,'text',$owner,$owner,false); + $slap = atom_entry($item,'html',null,$owner,false); + $atom .= atom_entry($item,'text',null,$owner,false); } } } @@ -410,13 +410,13 @@ function notifier_run($argv, $argc){ // older sites without a corresponding dfrn_notify change may do the wrong thing. if($item_id == $item['id'] || $item['id'] == $item['parent']) - $atom .= atom_entry($item,'text',$contact,$owner,true); + $atom .= atom_entry($item,'text',null,$owner,true); } else - $atom .= atom_entry($item,'text',$contact,$owner,true); + $atom .= atom_entry($item,'text',null,$owner,true); if(($top_level) && ($public_message) && ($item['author-link'] === $item['owner-link']) && (! $expire)) - $slaps[] = atom_entry($item,'html',$contact,$owner,true); + $slaps[] = atom_entry($item,'html',null,$owner,true); } } } -- cgit v1.2.3