Проблема в том, как вы делаете SMTP-соединение, здесь есть фрагмент моего кода:
smtp_conn = smtplib.SMTP('smtp.googlemail.com', 587)
#smtp_conn.set_debuglevel(True)
smtp_conn.ehlo()
smtp_conn.starttls()
smtp_conn.ehlo()
smtp_conn.docmd('AUTH', 'XOAUTH ' + base64.b64encode(xoauth_string))
Вы создаете строку xoauth_string, как в примере из Google.После этого вы можете использовать smtp_conn для отправки электронной почты.Если у вас есть какие-либо проблемы, дайте мне знать.Вы можете найти пример кода на https://github.com/PanosJee/xoauth