aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael <icarus@dabo.de>2012-02-24 08:50:42 +0100
committerMichael <icarus@dabo.de>2012-02-24 08:50:42 +0100
commit0ba45eb74543fc6377c48ac17d8b632e431e9467 (patch)
treee0006e486df5e02031fb0d61195f3674090970ae
parentf6320f3319a8009c7bdf51035b226f0ea688d8bd (diff)
downloadvolse-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-xinclude/delivery.php17
-rwxr-xr-xinclude/email.php41
-rwxr-xr-xinclude/notifier.php20
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();