Fixed send behavior.

This commit is contained in:
Michael Woods
2025-12-25 21:06:09 -05:00
parent 159a20f043
commit d5983b6bf3

View File

@@ -82,17 +82,23 @@ async def send_message(
detail=f"No valid recipients found. Failed: {', '.join(failed_recipients)}" detail=f"No valid recipients found. Failed: {', '.join(failed_recipients)}"
) )
# Create message # Create message
new_msg = Message( new_msg = Message(
text=payload.text, text=payload.text,
msg_from=username, msg_from=username,
msg_to=to_tuple, msg_to=tuple(valid_recipients),
attachments=() attachments=()
) )
# Deliver to valid recipients + always sender (sent folder) # Deliver to valid recipients + always sender (sent folder)
messages_root = root.setdefault('messages', PersistentMapping()) 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: for recip in valid_recipients:
mailbox = messages_root.setdefault(recip, PersistentList()) mailbox = messages_root.setdefault(recip, PersistentList())
@@ -107,7 +113,7 @@ async def send_message(
"status": "sent", "status": "sent",
"message_id": str(new_msg.msg_id), "message_id": str(new_msg.msg_id),
"from": username, "from": username,
"to": list(to_tuple), "to": list(valid_recipients),
"sent_at": new_msg.sent_at.isoformat() + "Z", "sent_at": new_msg.sent_at.isoformat() + "Z",
"recipients_delivered": len(delivered_to) "recipients_delivered": len(delivered_to)
} }