2017-05-28 28 views
0
import smtplib 

server = smtplib.SMTP("smtp.gmail.com", 587) 
server.starttls() 
server.login('[email protected]', 'myPassword') 

file = 'C:\\Users\\PC1\\Desktop\\myFile.txt' 
f = open(file, "r") 
filecontent = (f.read()) 
server.sendmail('[email protected]', '[email protected]', filecontent) 

このコードを実行すると、次のようなエラーが表示されます。添付ファイル付きの電子メールを送信

Traceback (most recent call last): 
    File "C:\Users\PC1\Desktop\pyos\mail.py", line 10, in <module> 
    server.sendmail('[email protected]', '[email protected]', filecontent) 
    File "C:\Users\PC1\AppData\Local\Programs\Python\Python36-32\lib\smtplib.py", line 854, in sendmail 
    msg = _fix_eols(msg).encode('ascii') 
UnicodeEncodeError: 'ascii' codec can't encode character '\u0131' in position 31: ordinal not in range(128) 

どうすればこの問題を解決できますか?私は送るファイルに文字の問題が欲しくない。

+0

あなたが対処する必要があるエンコーディングを持つ文字を含むファイルを読み込むしようとしています。これは[以前に]回答されています(https://stackoverflow.com/questions/11086752/read-a-text-file-with-non-ascii-characters-in-an-unknown-encoding) –

+0

申し訳ありませんが、それは具体的ではありませんまったく。 –

答えて

0

が変化する問題が修正されました:

filecontent = (f.read()) 

をする:

filecontent = (f.read().encode("utf-8")) 
関連する問題