diff options
author | Michael <icarus@dabo.de> | 2012-02-24 08:50:42 +0100 |
---|---|---|
committer | Michael <icarus@dabo.de> | 2012-02-24 08:50:42 +0100 |
commit | 0ba45eb74543fc6377c48ac17d8b632e431e9467 (patch) | |
tree | e0006e486df5e02031fb0d61195f3674090970ae | |
parent | f6320f3319a8009c7bdf51035b226f0ea688d8bd (diff) | |
download | volse-hubzilla-0ba45eb74543fc6377c48ac17d8b632e431e9467.tar.gz volse-hubzilla-0ba45eb74543fc6377c48ac17d8b632e431e9467.tar.bz2 volse-hubzilla-0ba45eb74543fc6377c48ac17d8b632e431e9467.zip |
Sending mail as multipart/alternative (html and plain text) (very basic by now)
-rwxr-xr-x | include/delivery.php | 17 | ||||
-rwxr-xr-x | include/email.php | 41 | ||||
-rwxr-xr-x | include/notifier.php | 20 |
3 files changed, 51 insertions, 27 deletions
diff --git a/include/delivery.php b/include/delivery.php index c7c2e8a3f..98c4f75df 100755 --- a/include/delivery.php +++ b/include/delivery.php @@ -438,14 +438,14 @@ function delivery_run($argv, $argc){ $file = tempnam("/tmp/friendica/", "mail-out-"); file_put_contents($file, json_encode($it)); - $headers .= 'Message-Id: <' . cleanupmessageid($it['uri']). '>' . "\n"; + $headers .= 'Message-Id: <' . email_cleanupmessageid($it['uri']). '>' . "\n"; //logger("Mail: uri: ".$it['uri']." parent-uri ".$it['parent-uri'], LOGGER_DEBUG); //logger("Mail: Data: ".print_r($it, true), LOGGER_DEBUG); //logger("Mail: Data: ".print_r($it, true), LOGGER_DATA); 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']) @@ -461,7 +461,7 @@ function delivery_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"; @@ -469,7 +469,8 @@ function delivery_run($argv, $argc){ //$message = '<html><body>' . $html . '</body></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; @@ -527,14 +528,6 @@ function delivery_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){ delivery_run($argv,$argc); killme(); diff --git a/include/email.php b/include/email.php index 452682260..fee3e2f68 100755 --- a/include/email.php +++ b/include/email.php @@ -1,4 +1,5 @@ <?php +require_once('include/html2plain.php'); function email_connect($mailbox,$username,$password) { if(! function_exists('imap_open')) @@ -224,6 +225,44 @@ function email_header_encode($in_str, $charset) { $out_str = $start . $out_str . $end; } return $out_str; -} +} + +function email_send($addr, $subject, $headers, $item) { + //$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"; + $html = prepare_body($item); + + $headers .= "Mime-Version: 1.0\n"; + $headers .= 'Content-Type: multipart/alternative; boundary="=_1f5dbdf8dbd0a060ea5bc3050bb14c6a"'."\n\n"; + + $body = "--=_1f5dbdf8dbd0a060ea5bc3050bb14c6a\n"; + $body .= "Content-Transfer-Encoding: quoted-printable\n"; + $body .= "Content-Type: text/plain; charset=utf-8; format=flowed\n\n"; + + $body .= html2plain($html)."\n"; + + $body .= "--=_1f5dbdf8dbd0a060ea5bc3050bb14c6a\n"; + $body .= "Content-Transfer-Encoding: quoted-printable\n"; + $body .= "Content-Type: text/html; charset=utf-8\n\n"; + + $body .= $html."\n\n"; + $body .= "--=_1f5dbdf8dbd0a060ea5bc3050bb14c6a--\n"; + + //$message = '<html><body>' . $html . '</body></html>'; + //$message = html2plain($html); + logger('notifier: email delivery to ' . $addr); + mail($addr, $subject, $body, $headers); +} + +function email_cleanupmessageid($messageid) { + global $a; + + if (!strpos($messageid, '@')) + $messageid = str_replace(":", ".", $messageid).'@'.$a->get_hostname(); + + return($messageid); +} 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><body>' . $html . '</body></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(); |