编码图像在使用 smtplib 发送时给出不同的代码
Encoded image gives different code when it was send wtih smtplib
我试过用这种方法对图像进行编码:
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()
它给了我这个
而不是 b'iVBORw0KGgoAAAANSUhEUgAAAgAAAAI...BlLm9yZ5vuPBoAAAAASUVORK5CYII=\n'
我的问题是为什么这两个不同?我怎样才能使它们相同
好的,我解决了。问题是我应该用自己定义 encode_image 。所以它很容易在 class.
中的另一个函数中调用
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())
我试过用这种方法对图像进行编码:
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()
它给了我这个b'iVBORw0KGgoAAAANSUhEUgAAAgAAAAI...BlLm9yZ5vuPBoAAAAASUVORK5CYII=\n'
我的问题是为什么这两个不同?我怎样才能使它们相同
好的,我解决了。问题是我应该用自己定义 encode_image 。所以它很容易在 class.
中的另一个函数中调用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())