Проблема с этой строкой в вашем коде:
recipient_list = list(str('xxxxx@gmail.com'))
Если вы запустите это в своей консоли, вы получите следующий вывод:
['x', 'x', 'x', 'x', 'x', '@', 'g', 'm', 'a', 'i', 'l', '.', 'c', 'o', 'm']
Который не является списком действительных адресов электронной почты! Вам нужно сделать это вместо:
recipient_list = ['xxxxx@gmail.com']