2
我正在尋找一些答案,直到現在我只是沒有解決我的問題。 我只想從我的程序發送簡單的電子郵件消息,如果發生錯誤。 我使用Gmail服務器來做到這一點,它實際上發送的電子郵件,但電子郵件的消息不會出現。 下面的代碼:如何使用smtplib和MIMEText發送電子郵件?
def accept(self):
HOST = 'smtp.gmail.com'
PORT = '587'
user = '***********@gmail.com'
senha = '***********'
servidor = smtplib.SMTP()
servidor.connect(HOST, PORT)
servidor.ehlo()
servidor.starttls()
servidor.ehlo()
servidor.login(user, senha)
assunto = 'Relatorio de Erro'
para = '**************@hotmail.com'
endereco = self.nemail.text()
de = str(endereco)
texto = self.message.toPlainText()
textos = Message(texto)
corpo = MIMEText(textos)
corpo['From'] = de
corpo['To'] = user
corpo['Subject'] = assunto
servidor.set_debuglevel(1)
servidor.sendmail(user, para, corpo.as_string())
servidor.quit
這就提出了在一個MimeText用於錯誤。說不能將MIMEText轉換爲str。 我試了另一個版本,只是爲了測試。 發送一個簡單的字符串:
def accept(self):
HOST = 'smtp.gmail.com'
PORT = '587'
user = '*************@gmail.com'
senha = '************'
servidor = smtplib.SMTP()
servidor.connect(HOST, PORT)
servidor.ehlo()
servidor.starttls()
servidor.ehlo()
servidor.login(user, senha)
assunto = 'Relatorio de Erro'
para = '*********@hotmail.com'
servidor.set_debuglevel(1)
servidor.sendmail(user, para, assunto)
servidor.quit()
電子郵件來正確的收件箱中,但它沒有消息,沒有什麼。 我搜查了很多,我讀了文檔,我試了很多,我甚至不知道我在做什麼。它看起來像我差不多了。 有人可以幫我嗎?
好的,我現在就解決了。 謝謝@jlargent。 看起來問題是字符串的編碼。 下面是我做的和工作的變化: corpo = MIMEText(textos.encode('utf-8'),_charset ='utf-8') 我試過了,它工作正常。 –