]> git.mxchange.org Git - friendica.git/commitdiff
Sending mail as multipart/alternative (html and plain text) (very basic by now)
authorMichael <icarus@dabo.de>
Fri, 24 Feb 2012 07:50:42 +0000 (08:50 +0100)
committerMichael <icarus@dabo.de>
Fri, 24 Feb 2012 07:50:42 +0000 (08:50 +0100)
include/delivery.php
include/email.php
include/notifier.php

index c7c2e8a3f3217a2a770e37810115b922f084d188..98c4f75df25e540925ef835443b42a5a6eaf0123 100755 (executable)
@@ -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();
index 452682260a16f16c1af1274f6f14c7eba4837a51..fee3e2f6860a4b177f676d4d92322f705f49631b 100755 (executable)
@@ -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);
+}
 
index 3ad433afd8645822d9e831cc69b70a19de148f97..b22e8c6f03de54ca8f99dfdb47faf0dc096ed9b5 100755 (executable)
@@ -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();