mail recall - just set mail_flags = mail_flags & MAIL_RECALLED and tell the notifier. We'll need a special button for this. Also should probably report whether it was seen or not. Will do that another day.
This commit is contained in:
parent
5612716cff
commit
8275f14cea
1
boot.php
1
boot.php
@ -224,6 +224,7 @@ define ( 'MAIL_DELETED', 0x0001);
|
||||
define ( 'MAIL_REPLIED', 0x0002);
|
||||
define ( 'MAIL_ISREPLY', 0x0004);
|
||||
define ( 'MAIL_SEEN', 0x0008);
|
||||
define ( 'MAIL_RECALLED', 0x0010);
|
||||
|
||||
|
||||
define ( 'ATTACH_FLAG_DIR', 0x0001);
|
||||
|
@ -773,6 +773,12 @@ function encode_mail($item) {
|
||||
$x['from'] = encode_item_xchan($item['from']);
|
||||
$x['to'] = encode_item_xchan($item['to']);
|
||||
|
||||
if($item['mail_flags'] & MAIL_RECALLED) {
|
||||
$x['flags'] = 'recalled';
|
||||
$x['title'] = '';
|
||||
$x['body'] = '';
|
||||
}
|
||||
|
||||
return $x;
|
||||
}
|
||||
|
||||
@ -786,6 +792,15 @@ function get_mail_elements($x) {
|
||||
|
||||
$arr['created'] = datetime_convert('UTC','UTC',$x['created']);
|
||||
|
||||
$arr['mail_flags'] = 0;
|
||||
|
||||
if($x['flags'] && is_array($x['flags'])) {
|
||||
if(in_array('recalled',$x['flags'])) {
|
||||
$arr['mail_flags'] &= MAIL_RECALLED;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($arr['created'] > datetime_convert())
|
||||
$arr['created'] = datetime_convert();
|
||||
|
||||
|
@ -999,7 +999,16 @@ function process_mail_delivery($sender,$arr,$deliveries) {
|
||||
intval($channel['channel_id'])
|
||||
);
|
||||
if($r) {
|
||||
logger('duplicate mail received');
|
||||
if($arr['mail_flags'] & MAIL_RECALLED) {
|
||||
$x = q("delete from mail where id = %d and channel_id = %d limit 1",
|
||||
intval($r[0]['id']),
|
||||
intval($channel['channel_id'])
|
||||
);
|
||||
logger('mail_recalled');
|
||||
}
|
||||
else {
|
||||
logger('duplicate mail received');
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
|
Reference in New Issue
Block a user