Fixed critical bug where 'read -p' without -n returns immediately
on empty input (user pressing Enter), causing variables to be empty.
Solution:
- Changed to 'read -p' (require Enter to submit)
- Added while loops to keep prompting until non-empty values
- IMAP_USERNAME and IMAP_PASSWORD: Required, cannot be empty
- SMTP_USERNAME and SMTP_PASSWORD: Optional, use IMAP values if not provided
- Clearer error messages ("cannot be empty" instead of default value text)
- This preserves user's typed values correctly
Tested with dummy credentials and all checks pass.