TypeError : 'type' object does not support item assignment

def send_email():

 sender = "[email protected]"
 password = "wefqffefw"

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

 try:
     server.login(sender, password)
     msg = MIMEMultipart
     msg["From"] = sender
     msg["To"] = sender
     msg["Subject"] = "отправка файла"

     for file in os.listdir("attachments"):
         print(file)

     with open("data.csv") as f:
         file = MIMEText(f.read())

     file.add_header('content-disposition', 'attachment', filename='data')
     msg.attach(file)
     server.sendmail(sender, sender, msg.as_string())

     return "The message was sen successfully!"
 except Exception as _ex:
     return f"{_ex}\nCheck your login or password!"

def main():
 print(send_email())

if __name__ == '__main__':
 main()

Ответы (1 шт):

Автор решения: CrazyElf

Ошибка тут:

     msg = MIMEMultipart
     msg["From"] = sender

MIMEMultipart - это класс. Видимо, пропущены скобки, класс нужно инстанциировать, а вы просто присвоили переменной msg ссылку на этот класс.

Видимо, правильно будет так:

     msg = MIMEMultipart()
     msg["From"] = sender
→ Ссылка