Sending mail as multipart/alternative (html and plain text) (very basic by now)
This commit is contained in:
parent
f6320f3319
commit
0ba45eb745
3 changed files with 51 additions and 27 deletions
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue