generate unique message ID if left empty