2017-08-19 20 views
0

我能夠成功地從我的python應用程序發送一封電子郵件。但是,這並不是我想要的方式。在瀏覽器或電子郵件應用程序中,名稱僅顯示爲電子郵件地址。我希望它顯示我的名字。設置sendmail的python函數名稱

msg = self.content.toPlainText() 
basic_content = 'Subject: {}\n\n{}'.format('Market more',msg) 
for email in to_email:    
    mail = smtplib.SMTP('smtp.office365.com', 587) 
    mail.ehlo() 
    mail.starttls() 
    mail.login("[email protected]","password")  
    mail.sendmail("[email protected]",email,basic_content) 
    print("You sent an email") 
print("Email sent to:"+str(to_email)) 
mail.close() 

我相信它是在sendmail()函數中設置的,但它似乎並不像我能夠調整參數。

+0

您是否嘗試過將所有的標題? –

+0

@ IgnacioVazquez-Abrams如何設置和發送標題? – EwokHugz

+1

您已經設置了「主題」標題​​,只需設置更多。 –

回答

0

我會建議重構/更改你的代碼看起來更像是例子#4(IV)發現here。我將在這裏複製示例以供參考。

import smtplib 
from email.MIMEMultipart import MIMEMultipart 
from email.MIMEText import MIMEText 


sender = "SENDERS EMAIL" 
fromaddr = "SENDERS NAME" 
toaddr = "RECEIVERS EMAIL" 
msg = MIMEMultipart() 
msg['From'] = fromaddr 
msg['To'] = toaddr 
msg['Subject'] = "SUBJECT OF THE MAIL" 

body = "BODY OF YOUR MESSAGE" 
msg.attach(MIMEText(body, 'plain')) 

server = smtplib.SMTP('smtp.office365.com', 587) 
server.starttls() 
server.login(sender, "SENDERS PASSWORD") 
text = msg.as_string() 
server.sendmail(fromaddr, toaddr, text) 
server.quit() 

此代碼將與Python 2.7一起使用。

您缺少的主要信息是msg['From']標題,我認爲這是Ignacio Vazquez-Abrams引用的內容。

額外的後,你可以參考

+0

沒關係,我能夠使它工作。我混淆了變量。感謝您對MIME的迴應和介紹。 – EwokHugz

+0

我需要toaddr成爲一個列表。但是,它是編碼的,不能放在那裏。我收到一個AttributeError。 – EwokHugz

+0

不幸的是,沒有看到更多的代碼,我不知道我可以得到多少幫助。 – jdaltonchilders