[Google App Engine] - Mail versand, Exception fangen
Verfasst: Samstag 18. September 2010, 20:17
Guten Tag, Experten!
Habe eine allgemein frage bezüglich Exceptions in Python und die Arbeit mit denen, aber da es um GAE (Google App Engine) geht, habe ich es hier gepostet.
Also, ich möchte mittels GAE mail(s) verschiecken an eine bestimmte adresse. Es gibt einen Feedback-formular. Funktionieren tut es eig. schon, aber jetzt will ich einbisschen AJAX/RPC integrieren. Die Antwort, der funktion, die die Emails verschickt, soll dann in eine Dictionary gespeicehr werden, die dann ins JSON format umgewandelt wird
Beispiel (erfolg):
Beispiel (FEHLER):
Beispiel (FEHLER):
QuellCode (testunit):
Wenn keine Fehler statt gefunden haben, bekomme ich mein JSON. Aber falls es eine oder andere Exceprion exestiert, gibts nichts ausser print 'Hello GAE pyUnit'. (Ich verwende eine "modifizierte version des PyUnits extra für GAE. Ausgabe nicht in der Konsole sondern in Browser")
Was mache ich falsch? Versteh ich den Sinn der Exceptions falsch? Ich mein, jedesmal wenn ich eine bekomme, script wird mit fehlermeldung unterbrochen.....
Ideen? Vorschläge ? Vielleicht ein ausführliches und verständliches Tutorial zum Thema Exceptions ? (python-docs habe ich schon gelesen....)
P.S. Hier ist die Liste aller Exceptions der Klasse EmailMessage
Habe eine allgemein frage bezüglich Exceptions in Python und die Arbeit mit denen, aber da es um GAE (Google App Engine) geht, habe ich es hier gepostet.
Also, ich möchte mittels GAE mail(s) verschiecken an eine bestimmte adresse. Es gibt einen Feedback-formular. Funktionieren tut es eig. schon, aber jetzt will ich einbisschen AJAX/RPC integrieren. Die Antwort, der funktion, die die Emails verschickt, soll dann in eine Dictionary gespeicehr werden, die dann ins JSON format umgewandelt wird
Beispiel (erfolg):
Code: Alles auswählen
# Inspiration von CouchDB API
{ #Es wurde eine Instanz der Klase mail.EmailMessage erzeugt.
#Alles richtig. Empfaenger liste enthält ['empfaenger_1@mailforspam.com', 'empfaenger_2@mailforspam.com']
"ok": true,
"recipient": [
"empfaenger_1@mailforspam.com",
"empfaenger_2@mailforspam.com"
],
"sender": "absender@gae.org"
}
Beispiel (FEHLER):
Code: Alles auswählen
{
# Absender-Adresse ist falsch oder gar nicht eingegeben worder....
"error": "InvalidEmailError", #exception InvalidEmailError()
"error_str": "Empty email address for sender."
}
Code: Alles auswählen
{ # Kein Betreff zugewiesen
"error": "ValueError", #exception ValueError()
"error_str": "May not set empty value for 'subject'."
}
Code: Alles auswählen
class AppEngineTestCase(unittest.TestCase):
def test_jsonmail(self):
print 'Hello GAE pyUnit'
email = mail.EmailMessage()
email_dict = {
'absender': 'None',
'name': 'GAE Tester',
'empfaenger': ['empfaenger_1@mailforspam.com', 'empfaenger_2@mailforspam.com'],
'betreff': 'GAE TESTING #23',
'text': 'FEHLER'
}
email.sender = email_dict.get('absender')
email.subject = email_dict.get('betreff')
email.to = ''
email.body = email_dict.get('text')
email.reply_to = email_dict.get('name') + '<' + email_dict.get('absender') + '>'
response = {}
try:
email.send()
response['ok'] = True
response['recipient'] = email_dict.get('empfaenger')
response['sender'] = email_dict.get('absender')
except Exception, e:
#ValueError: May not set empty value for 'subject'
#InvalidEmailError: Empty email address for to.
response['eroor'] = type(e).__name__
response['error_str'] = e.valie()
finally:
print simplejson.dumps(response, sort_keys=True, indent=3)
Was mache ich falsch? Versteh ich den Sinn der Exceptions falsch? Ich mein, jedesmal wenn ich eine bekomme, script wird mit fehlermeldung unterbrochen.....
Ideen? Vorschläge ? Vielleicht ein ausführliches und verständliches Tutorial zum Thema Exceptions ? (python-docs habe ich schon gelesen....)
P.S. Hier ist die Liste aller Exceptions der Klasse EmailMessage