Кодированное изображение дает другой код при отправке с помощью smtplib - PullRequest
0 голосов
/ 18 мая 2018

Я пытался закодировать изображение с помощью этого метода:

def resim_ac(self):
    dosya_ismi = QFileDialog.getOpenFileName(self, "Resim Aç", os.getenv("HOME"))

    with open(dosya_ismi[0], "rb") as file:

        image = file.read()

        encode_image = base64.encodestring(image)
    if  str(encode_image) != "":
        return str(encode_image)
    else:
        return ""

encoded_image соответствует изображению: b'iVBORw0KGgoAAAANSUhEUgAAAgAAAAI...BlLm9yZ5vuPBoAAAAASUVORK5CYII=\n' (Это закодированное изображение)

Всякий раз, когда я пытаюсь отправить этот код по электронной почте следующим способом:

    mesaj = MIMEMultipart()

    mesaj_govdesi2 = MIMEText(str(self.resim_ac), "plain")


    mesaj.attach(mesaj_govdesi2)


    mesaj["Subject"] = self.subject_text.text()  #LineEdit



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

    mail.ehlo()
    mail.starttls()

    mail.login(self.email, self.passw)  # e-mail adress and it's password
    mail.sendmail(self.email,self.email_to, mesaj.as_string())
    print("Mail Sended....")



    mail.close()

Это дает мне это enter image description here а не b'iVBORw0KGgoAAAANSUhEUgAAAgAAAAI...BlLm9yZ5vuPBoAAAAASUVORK5CYII=\n'

Мой вопрос: почему эти два разных? И как я могу сделать их такими же

1 Ответ

0 голосов
/ 18 мая 2018

хорошо, я решил это.Проблема в том, что я должен определить encode_image с self.Так что это легко вызывается в другой функции в классе.

content = str(self.encryption())
        mesaj = MIMEMultipart()

        mesaj_govdesi = MIMEText(str(content), "plain")
        mesaj_govdesi2 = MIMEText(str(self.encode_image), "plain")

        mesaj.attach(mesaj_govdesi)
        mesaj.attach(mesaj_govdesi2)


        mesaj["Subject"] = self.subject_text.text()  #LineEdit


        try:
            mail = smtplib.SMTP("smtp.gmail.com", 587)

            mail.ehlo()
            mail.starttls()

            mail.login(self.email, self.passw)  # e-mail adress and it's password
            mail.sendmail(self.email,self.email_to, mesaj.as_string())
...