2016-07-21 6 views
1

Djangoに添付ファイル付きの電子メールを送信しようとしています。ファイルはrequest.FILE['file']オブジェクト(InMemoryUploadedFileタイプ)です。 EmailMessage(...)でメッセージを作成し、message.attach(f.name, f.read(), f.content_type)でファイルを添付します。メールを送信'InMemoryUploadedFile'オブジェクトに 'エンコード'属性がありません

は、指定されたエラーで失敗します。 'InMemoryUploadedFile' object has no attribute 'encode'

+1

ここでは、どのような進歩ですか? – waterkinq

答えて

0

これはdocuments[]入力htmlタグの名前ですforms.py

from django.core.mail import EmailMultiAlternatives 

email = EmailMultiAlternatives(
    subject='some subject', 
    from_email='[email protected]_domain.com', 
    to=['[email protected]_domain.com'], 
    body='some html content') 
email.content_subtype = "html" 
if hasattr(self.files, 'getlist'): 
    files = self.files.getlist('document[]') 
    for _file in files: 
     _file.open() 
     email.attach(_file.name, _file.read(), _file.content_type) 
     _file.close() 
email.send() 

でフォーム定義の内側に私の仕事:

<input name="document[]" id="file" type="file">

関連する問題