Sending emails with attachment in django
attachment, django, django-forms
Solution
The error traceback you've posted doesn't seem to have anything to do with the actual code - it seems to be some sort of problem with middleware (presumably when rendering the 500 error page).
However, your error is probably caused by your use of the undefined variable name `attach` in the calls to `mail.attach`. You don't have an `attach` variable - you've called the posted files `image1` etc, so you should use those names.
mail.attach(image1.name, image1.read(), image1.content_type)
mail.attach(image2.name, image2.read(), image2.content_type)
mail.attach(image3.name, image3.read(), image3.content_type)
Problem
I'm trying to send email with some images attached in django. Code used is this snippet : http://www.djangosnippets.org/snippets/1063/. I don't know, why the attachment part returns me a core error. The code. `forms.py` ``` from django import forms from common import slugify_unique from django.conf import settings from django.core.cache import cache from django.contrib.admin import widgets from django.shortcuts import get_object_or_404 class WorkForm(forms.Form): name = forms.CharField(label='Name and surname', max_length=64, required = True ) nick = forms.CharField(label='nickname', max_length=40, required = True ) email = forms.EmailField(label='e-mail', required = True ) image1 = forms.Field(label='sample photo', widget = forms.FileInput, required = True ) image2 = forms.Field(label='sample photo', widget = forms.FileInput, required = True ) image3 = forms.Field(label='sample photo', widget = forms.FileInput, required = True ) text = forms.CharField(label='Few words about you', widget=forms.Textarea, required = False ) ``` views.py ``` from forms import WorkForm from django.core.mail import send_mail, EmailMessage def work(request): template = 'other/work.html' if request.method == 'POST': form = WorkForm(request.POST, request.FILES) if form.is_valid(): name = form.cleaned_data['name'] nick = form.cleaned_data['nick'] email = form.cleaned_data['email'] subject = 'Work' text = form.cleaned_data['text'] image1 = request.FILES['image1'] image2 = request.FILES['image2'] image3 = request.FILES['image3'] try: mail = EmailMessage(subject, text, ['EMAIL_ADDRESS'], [email]) mail.attach(image1.name, attach.read(), attach.content_type) mail.attach(image2.name, attach.read(), attach.content_type) mail.attach(image3.name, attach.read(), attach.content_type) mail.send() template = 'other/mail_sent.html' except: return "Attachment error" return render_to_response(template, {'form':form}, context_instance=RequestContext(request)) else: form = WorkForm() return render_to_response(template, {'form':form}, context_instance=RequestContext(request)) ``` And here's error site image : http://img201.imageshack.us/img201/6027/coreerror.png What am I doing wrong ?