0

Пытаюсь написать функцию которая Gmail отправляет. На втором Except рушится, раньше работала, как добавил немного кода, все полетело:

import smtplib
from smtplib import SMTPAuthenticationError
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

def sent_mail():

    """Questions for user"""

    email = input('Your Email: ')
    password = input('Password: ')

    """Questions for user"""

    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()

    try:
        server.login(email, password)
        print('+' + '-' * 11 + '+')
        print('| logged in |')
        print('+' + '-' * 11 + '+')
        try:
            msg = MIMEMultipart()
            msg['From'] = email
            msg['To'] = input('Recipient: ')
            msg['Subject'] = input('Subject: ')
            text = input('Text: ')

            msg.attach(MIMEText(text))

            server.sendmail(msg['From'], msg['To'], msg)
            print('+' + '-' * 21 + '+')
            print('| Email has been send |')
            print('+' + '-' * 21 + '+')
            server.quit()

        except:
            print('+' + '-' * 22 + '+')
            print('| Something went wrong |')
            print('+' + '-' * 22 + '+' + '\n')

    except smtplib.SMTPAuthenticationError:
        print('+' + '-' * 27 + '+')
        print('| Invalid Email or Password |')
        print('+' + '-' * 27 + '+' + '\n')
        question = input('Try again(y/n): ').lower()
        if question == 'y':
            return True
        else:
            return False
Kromster
  • 13,809

1 Answers1

0

нашел, в server.sendmail() нужно было вместо msg -> msg.as_string()