Как уже упоминалось, эта проблема не является специфической для Python, а вызвана тем, как вы передаете в пароль параметр пароля.
Вы захотите обернуть строку пароля в одинв кавычках, чтобы убедиться, что он передается в сценарий именно так, как вы его вводите, и не интерпретируется оболочкой.
Вы можете сделать это и для имени пользователя, если есть вероятность, что он содержит восклицательный знакили другой специальный символ.
Например:
emailsender.py -u 'username' -p 'pass!!'