[Django] Mails verschicken

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
bugzz
User
Beiträge: 20
Registriert: Donnerstag 17. Juni 2010, 11:38

Hallo Experten,

bin neu hier :wink:
Habe paar Fragen und einige davon sind eher theoretisch....

Also, beschäftige mich seit einiger Tagen mir Django [1.1.1]. Das ganze läuft dann in Ubuntu 10.04 VM (VirtualMachine) unter Win7.
Bin in wirklichkeit ein purer python-novice.
Im moment lese ich ein Buch über Django. Bei der Aufgabe mit dem Feedback-formular (Betreff, E-Mail und Nachricht, die dann als E-Mail an webpage-admin gesendet werden) bin auf paar problemme gestossen. Zuerst wurde mir klar dass ich ohne weiteres keine Emials (vie django.core.mail.send_mail() oder *.EmailMessage()) verschicken kann. Bei der recherche bin ich auf "gmail-trick" gestossen. Habe dann einen googlemail account angelegt und dessen SMTP daten in setting.py verwendet
settings.py

Code: Alles auswählen

....
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'new.gmail.account.name' #fake
EMAIL_HOST_PASSWORD = 'my.super.password' #fake
EMAIL_PORT = 587
...
views.py

Code: Alles auswählen

def feedback (request):
...
email = EmailMessage(request.POST['betreff'],
                     request.POST['nachricht'],
                     request.POST.get('email', 'noreply@mysite.org'),
                     # Hier schicke ich die Emails an Temporäre-Email Dienste: mailfprspam.com & spaml.de und co
                     ['django.tests@mailforspam.com', 'django.tests@spaml.de'],
                     # Setze eingegebene E-mail Adresse ausm Formular ins Reply-to header
                     headers = { 'Reply-To': request.POST.get('email', 'noreply@mysite.org') } 
                     )

try:
   email.send()
except:
   return HttpResponse('Fehler !')
HttpResponseRedirect('/contact/thanks/')
...
Damit konnte ich die E-mails verschicken, dabei aber sah ich dass als "Absender" immer new.gmail.account.name@googlemail.com stehtm egal was ich in E-Mail textfeld des Feedbacks-Formulars eingegeben habe. Ist klar, wenn ich Gmails SMTP benutze und durch dessen Service mails verschicke. Hab zwar versucht e-Mail Header 'Reply-To' einzusetzen, aber es klappt nicht überall...

Und jetzt wollte ich fragen ob jemand schon eine andere möglichket (heraus)gefunden hat um Mails von einen localserver (meinstens nur für development) zu veschicken. Hab irgendwie keine bock einen MailServer einzurichten..... :roll:

P.S. Und hier kommt die theoretishe frage, die eig. mit django und co nicht wirklicj zutun hat. Wie ich schon oben erwähnt habe, da ich googles SMTP benutze, wird auch dessen adressen (new.gmail.account.name@googlemail.com) als Absender gesetz. Ist logisch. Aber wie mach man das dann so, dass belibige personen (z.B. Kunden eines eShops) solche Feedback-Formulare ausfühlen und die Emails mit eingegebenen E-Mail-Adressen als Absender verschicken? Wie ist das dann möglich jedesmal verschidene Absender-Adressen zu setzen, wobei man damit einen permanenten Mail-Server benutzen soll (in theorie) ?! Habe schon 'Return-Path' Header versucht, aber keine Änderungen...
Deutsch ist nicht meine Muttersprache
Antworten