Sending mail as multipart/alternative (html and plain text) (very basic by now)
This commit is contained in:
parent
f6320f3319
commit
0ba45eb745
|
@ -438,14 +438,14 @@ function delivery_run($argv, $argc){
|
||||||
$file = tempnam("/tmp/friendica/", "mail-out-");
|
$file = tempnam("/tmp/friendica/", "mail-out-");
|
||||||
file_put_contents($file, json_encode($it));
|
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: 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_DEBUG);
|
||||||
//logger("Mail: Data: ".print_r($it, true), LOGGER_DATA);
|
//logger("Mail: Data: ".print_r($it, true), LOGGER_DATA);
|
||||||
|
|
||||||
if($it['uri'] !== $it['parent-uri']) {
|
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'])) {
|
if(! strlen($it['title'])) {
|
||||||
$r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1",
|
$r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1",
|
||||||
dbesc($it['parent-uri'])
|
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/html; charset=UTF-8' . "\n";
|
||||||
$headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n";
|
$headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n";
|
||||||
$headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n";
|
$headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n";
|
||||||
|
@ -469,7 +469,8 @@ function delivery_run($argv, $argc){
|
||||||
//$message = '<html><body>' . $html . '</body></html>';
|
//$message = '<html><body>' . $html . '</body></html>';
|
||||||
$message = html2plain($html);
|
$message = html2plain($html);
|
||||||
logger('notifier: email delivery to ' . $addr);
|
logger('notifier: email delivery to ' . $addr);
|
||||||
mail($addr, $subject, $message, $headers);
|
mail($addr, $subject, $message, $headers);*/
|
||||||
|
email_send($addr, $subject, $headers, $it);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -527,14 +528,6 @@ function delivery_run($argv, $argc){
|
||||||
return;
|
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){
|
if (array_search(__file__,get_included_files())===0){
|
||||||
delivery_run($argv,$argc);
|
delivery_run($argv,$argc);
|
||||||
killme();
|
killme();
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
|
require_once('include/html2plain.php');
|
||||||
|
|
||||||
function email_connect($mailbox,$username,$password) {
|
function email_connect($mailbox,$username,$password) {
|
||||||
if(! function_exists('imap_open'))
|
if(! function_exists('imap_open'))
|
||||||
|
@ -224,6 +225,44 @@ function email_header_encode($in_str, $charset) {
|
||||||
$out_str = $start . $out_str . $end;
|
$out_str = $start . $out_str . $end;
|
||||||
}
|
}
|
||||||
return $out_str;
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -651,10 +651,10 @@ function notifier_run($argv, $argc){
|
||||||
$file = tempnam("/tmp/friendica/", "mail-out2-");
|
$file = tempnam("/tmp/friendica/", "mail-out2-");
|
||||||
file_put_contents($file, json_encode($it));
|
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']) {
|
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'])) {
|
if(! strlen($it['title'])) {
|
||||||
$r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1",
|
$r = q("SELECT `title` FROM `item` WHERE `parent-uri` = '%s' LIMIT 1",
|
||||||
dbesc($it['parent-uri'])
|
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/html; charset=UTF-8' . "\n";
|
||||||
$headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n";
|
$headers .= 'Content-Type: text/plain; charset=UTF-8' . "\n";
|
||||||
$headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n";
|
$headers .= 'Content-Transfer-Encoding: 8bit' . "\n\n";
|
||||||
|
@ -679,7 +679,8 @@ function notifier_run($argv, $argc){
|
||||||
//$message = '<html><body>' . $html . '</body></html>';
|
//$message = '<html><body>' . $html . '</body></html>';
|
||||||
$message = html2plain($html);
|
$message = html2plain($html);
|
||||||
logger('notifier: email delivery to ' . $addr);
|
logger('notifier: email delivery to ' . $addr);
|
||||||
mail($addr, $subject, $message, $headers);
|
mail($addr, $subject, $message, $headers);*/
|
||||||
|
email_send($addr, $subject, $headers, $it);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NETWORK_DIASPORA:
|
case NETWORK_DIASPORA:
|
||||||
|
@ -726,7 +727,7 @@ function notifier_run($argv, $argc){
|
||||||
// we are the relay - send comments, likes and unlikes to our conversants
|
// we are the relay - send comments, likes and unlikes to our conversants
|
||||||
diaspora_send_relay($target_item,$owner,$contact);
|
diaspora_send_relay($target_item,$owner,$contact);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
elseif(($top_level) && (! $walltowall)) {
|
elseif(($top_level) && (! $walltowall)) {
|
||||||
// currently no workable solution for sending walltowall
|
// currently no workable solution for sending walltowall
|
||||||
diaspora_send_status($target_item,$owner,$contact);
|
diaspora_send_status($target_item,$owner,$contact);
|
||||||
|
@ -841,15 +842,6 @@ function notifier_run($argv, $argc){
|
||||||
return;
|
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){
|
if (array_search(__file__,get_included_files())===0){
|
||||||
notifier_run($argv,$argc);
|
notifier_run($argv,$argc);
|
||||||
killme();
|
killme();
|
||||||
|
|
Loading…
Reference in a new issue