Fixed send behavior.
This commit is contained in:
@@ -82,17 +82,23 @@ async def send_message(
|
||||
detail=f"No valid recipients found. Failed: {', '.join(failed_recipients)}"
|
||||
)
|
||||
|
||||
|
||||
# Create message
|
||||
new_msg = Message(
|
||||
text=payload.text,
|
||||
msg_from=username,
|
||||
msg_to=to_tuple,
|
||||
msg_to=tuple(valid_recipients),
|
||||
attachments=()
|
||||
)
|
||||
|
||||
# Deliver to valid recipients + always sender (sent folder)
|
||||
messages_root = root.setdefault('messages', PersistentMapping())
|
||||
delivered_to = set([username]) # sender always gets copy
|
||||
delivered_to = set()
|
||||
# Always give sender a copy in their mailbox (acts as Sent folder)
|
||||
sender_mailbox = messages_root.setdefault(username, PersistentList())
|
||||
sender_mailbox.append(new_msg)
|
||||
sender_mailbox._p_changed = True
|
||||
delivered_to.add(username) # now accurate
|
||||
|
||||
for recip in valid_recipients:
|
||||
mailbox = messages_root.setdefault(recip, PersistentList())
|
||||
@@ -107,7 +113,7 @@ async def send_message(
|
||||
"status": "sent",
|
||||
"message_id": str(new_msg.msg_id),
|
||||
"from": username,
|
||||
"to": list(to_tuple),
|
||||
"to": list(valid_recipients),
|
||||
"sent_at": new_msg.sent_at.isoformat() + "Z",
|
||||
"recipients_delivered": len(delivered_to)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user