To protect yourself from sending messages too hastily, you can add a final confirmation, which you can of course make as elaborate as you wish.
(defun confirm-empty-subject () "Require confirmation before sending without subject." (let ((sub (message-field-value "Subject"))) (or (and sub (not (string-match "\\`[ \t]*\\'" sub))) (yes-or-no-p "Really send without Subject? ") (keyboard-quit)))) (add-hook 'message-send-hook #'confirm-empty-subject)
If you always want to be asked for for confirmation, set
message-confirm-send
to non-nil
so the question “Send message?” is
asked for confirmation.