2015-02-26 1 views
0

J'ai un modèle que je remplis en fonction des choix d'un utilisateur. Plutôt que de rendre ce modèle comme le corps de l'e-mail, je veux l'envoyer en pièce jointe. Comment puis-je 'écrire' dans mon template .bib (et, de manière similaire à mon .ris et .txt) que je veux utiliser en pièce jointe?Joindre un fichier gererated .bib (et .ris et .txt) à envoyer par courrier électronique en Python

views.py

# I can create this file from a link on my page but I want to send it as an email attachment?? 
response = render_to_response('publications/publications.bib', {'publications': publications}, context_instance=RequestContext(request), content_type='text/x-bibtex; charset=UTF-8') 
response['Content-Disposition'] = 'attachment; filename="references.bib"' 
return response 

# email creation 
text_template = 'mytemplate.txt' 
html_template = 'mytemplate.html' 

text_content = render_to_string(mytemplate, context, context_instance=RequestContext(request)) 
html_content = render_to_string(html_template, context, context_instance=RequestContext(request)) 

msg = EmailMultiAlternatives(subject, text_content, from_email, to) 
msg.attach_alternative(html_content, "text/html") 
msg.send() 

new_attempt.py

# this doesn't work but maybe it's closer? 
publications = request.session.get('all_publications') 
response = render_to_response('publications/publications.bib', {'publications': publications}, context_instance=RequestContext(request), content_type='text/x-bibtex; charset=UTF-8') 
response['Content-Disposition'] = 'attachment; filename="references.bib"' 
msg.attach(filename="references.bib", content=response, mimetype="text/x-bibtex") 

Répondre

0

Je l'ai finalement obtenu en utilisant

bib_content = render_to_string(myTemplate, myContext) 
msg.attach(filename="references.bib", content=bib_content, mimetype="application/x-bibtex")