fix: add conditional login for SMTP server and enhance test coverage - Updated the Email class to conditionally log in to the SMTP server only if a sender password is provided, improving security. - Enhanced test cases for the try_send_email method to cover various scenarios, including successful email sending and handling SMTP disconnections.