ошибка типа поля объекта smtplib: объект ‘str’ не поддерживает назначение элемента

#python #python-2.7 #smtplib

#python #python-2.7 #smtplib

Вопрос:

Я пытаюсь добавить строковое значение в поле темы при отправке электронной почты с использованием smtplib, но, к сожалению, msg [‘Subject’] всегда выдает ошибку:

Ошибка типа: объект ‘str’ не поддерживает назначение элемента

Ниже приведен мой код:

     for host in self.hostnames:
        for h in host:
            start = 'Create'
            s = str(h)
            l = str(self.lease)
            u = str(self.username)
            f = str(listFlavor)
            subject = start   ' '   s   ' '   l   ' '   u   ' '   f

            msg            = 'Add Lease days of %s' % str(self.lease)
            msg['Subject'] = subject
            msg['From']    = self.username
            msg['To']      = 'test@test.com'

            s = smtplib.SMTP('test.test.com')
            s.sendmail('test@test.com', self.username, msg.as_string())
            s.quit()
  

Комментарии:

1. msg является строкой. Что вы ожидаете msg['Subject'] = subject сделать?

Ответ №1:

да, это правда.

Я добавил эту строку для первоначального объявления msg.

msg = MIMEMultipart('related')

который является dict и содержит значения, добавленные к msg.