2010-12-09 18 views
3

Il existe de nombreux exemples d'attachement d'un fichier à un e-mail, mais je ne trouve pas d'exemple d'association d'une instance MIMEBase. De la docs: attachments "Il peut s'agir d'instances email.MIMEBase.MIMEBase, ou de triplets (filename, content, mimetype)."Joindre un fichier ical à un e-mail django

Je suis la génération d'un fichier iCal dans une fonction très bien:

def ical() 
    cal = vobject.iCalendar() 
    cal.add('method').value = 'PUBLISH' # IE/Outlook needs this 

    vevent = cal.add('vevent') 
    vevent.add('dtstart').value = self.course.startdate 
    vevent.add('dtend').value = self.course.startdate 
    vevent.add('summary').value='get details template here or just post url' 
    vevent.add('uid').value=str(self.id) 
    vevent.add('dtstamp').value = self.created 

    icalstream = cal.serialize() 
    response = HttpResponse(icalstream, mimetype='text/calendar') 
    response['Filename'] = 'shifts.ics' # IE needs this 
    response['Content-Disposition'] = 'attachment; filename=shifts.ics' 
    return response 

Mais cela ne fonctionne pas:

myicalfile = ical() 
    message.attach(myicalfile) 
+0

Comment exactement est créée la variable myicalfile? Est-ce vraiment une instance email.MIMEBase.MIMEBase? – edgars

+0

Avoir modifier pour rendre plus clair d'où vient myicalfile et non ce n'est pas un emailMIMEBase car je ne suis pas clair comment en faire un! – PhoebeB

Répondre

2

Essayez ce code à la fin de ical def(): Bien sûr, le code d'importation doit être déplacé en haut du fichier pour se conformer aux normes de codage.

+0

Cela fonctionne parfaitement. Merci beaucoup! – PhoebeB

+0

comment puis-je envoyer ceci à une adresse e-mail particulière? – Gaurav