2017-02-14 70 views
0

メールを送信することができます。smtplib.Firstからメールにファイルを添付して、base64文字列に変換してからPOSTマンからアタッチしようとしています。 しかし、そのドキュメント 『フィールド"私はsmtplib - pythonのアタッチファイル

私はbase64文字列を送信していますthis.Hereを修正する方法
{ 
    "frommail":"[email protected]", 
    "password":"", 
    "tomail":"[email protected]", 
    "subject":"Test Mail", 
    "message":"mail message here", 
    "doctype":"", 
    "docname":"", 
    "document":"iVBORw0KGgoAAAANSUhEUgAAASoAAAEsCAYAAAB0Y/4yAAASfklEQVR4nO3df7BdVXXA8e9hMpkMgwylGeowlKGoFBFRU4ZSax1/0VpKrVqqIP6qdSpaRlE7olNLh7EttZaxaKfUWrQUEUEcpBR/R6EqYhWDQfkpIharCIQAMZCQZPWPfaMxebnvvvfuuWvfu7+fmTUvk5fMW2e/c9Y9Z" 
} 

以下のように送りますPOSTの男から

MultipartConversionError: Cannot attach additional subparts to non-multipart/*

』以下のエラーを与える。

import smtplib 
from email.mime.text import MIMEText as text 
from email.MIMEMultipart import MIMEMultipart 
from email.MIMEText import MIMEText 
from email.MIMEBase import MIMEBase 
from email import encoders 
@csrf_exempt 
@api_view(['POST']) 
def sendmail(request): 
    if request.method == 'POST': 
     data = request.data 
     fromMail = data["frommail"] 
     passwd  = data["password"] 
     toMail  = data["tomail"] 
     subject  = data["subject"] 
     text1  = data["message"] 
     doctype  = data['doctype'] 
     docname  = data['docname'] 
     document = data['document'] 

     msg = text(str(text1)) 
     msg['Subject'] = subject 
     msg['From'] = fromMail 
     msg['To'] = toMail 

     part = MIMEBase('application', 'octet-stream') 
     #part.set_payload(open(document, 'rb').read()) 
     #Encoders.encode_base64(part) 
     part.add_header('Content-Disposition','attachment; filename="%s"' % os.path.basename(document)) 
     msg.attach(part) 

     try: 
      server = smtplib.SMTP('smtp.gmail.com', 587) 
      server.starttls() 
      server.login(fromMail, passwd) 
      server.sendmail(fromMail, toMail, msg.as_string()) 
      server.quit()  
      return JSONResponse({"Status":"Successfully sent email"}) 
     except: 
      return JSONResponse({"Failure":"Unable to send mail."}) 

答えて

0

は、あなたのコード内でMIMEMultipart()を追加するようにしてください。あなたの問題を解決する必要があること。

attach file like object to email python 3

詳細については、上記のリンクに従ってください。

+0

あなたのメッセージをありがとうございます。しかし、それは仕事できませんでした。同じエラーです。 – user1335606

関連する問題