diff options
-rw-r--r-- | Zotlabs/Module/Mail.php | 26 | ||||
-rw-r--r-- | include/message.php | 5 |
2 files changed, 25 insertions, 6 deletions
diff --git a/Zotlabs/Module/Mail.php b/Zotlabs/Module/Mail.php index 52f1ddf32..d605a78a9 100644 --- a/Zotlabs/Module/Mail.php +++ b/Zotlabs/Module/Mail.php @@ -178,6 +178,25 @@ class Mail extends \Zotlabs\Web\Controller { '$header' => t('Messages'), )); + if(argc() == 3 && intval(argv(1)) && argv(2) === 'download') { + + $r = q("select * from mail where id = %d and channel_id = %d", + intval(argv(1)), + intval(local_channel()) + ); + + if($r) { + + header('Content-type: ' . $r[0]['mail_mimetype']); + header('Content-disposition: attachment; filename="' . t('message') . '-' . $r[0]['id'] . '"' ); + $body = (($r[0]['mail_obscured']) ? base64url_decode(str_rot47($r[0]['body'])) : $r[0]['body']); + echo $body; + killme(); + } + + } + + if((argc() == 4) && (argv(2) === 'drop')) { if(! intval(argv(3))) return; @@ -370,6 +389,11 @@ class Mail extends \Zotlabs\Web\Controller { foreach($messages as $message) { $s = theme_attachments($message); + + if($message['mail_raw']) + $message['body'] = mail_prepare_binary([ 'id' => $message['id'] ]); + else + $message['body'] = zidify_links(smilies(bbcode($message['body']))); $mails[] = array( 'mailbox' => $mailbox, @@ -382,7 +406,7 @@ class Mail extends \Zotlabs\Web\Controller { 'to_url' => chanlink_hash($message['to_xchan']), 'to_photo' => $message['to']['xchan_photo_s'], 'subject' => $message['title'], - 'body' => zidify_links(smilies(bbcode($message['body']))), + 'body' => $message['body'], 'attachments' => $s, 'delete' => t('Delete message'), 'dreport' => t('Delivery report'), diff --git a/include/message.php b/include/message.php index 801f4b067..b56f98238 100644 --- a/include/message.php +++ b/include/message.php @@ -355,9 +355,6 @@ function private_messages_list($uid, $mailbox = '', $start = 0, $numitems = 0) { if($r[$k]['body']) $r[$k]['body'] = base64url_decode(str_rot47($r[$k]['body'])); } - if($r[$k]['mail_raw']) - $r[$k]['body'] = mail_prepare_binary([ 'id' => $r[$k]['id'] ]); - } return $r; @@ -396,8 +393,6 @@ function private_messages_fetch_message($channel_id, $messageitem_id, $updatesee if($messages[$k]['body']) $messages[$k]['body'] = base64url_decode(str_rot47($messages[$k]['body'])); } - if($messages[$k]['mail_raw']) - $messages[$k]['body'] = mail_prepare_binary([ 'id' => $messages[$k]['id'] ]); } |