2012-10-21 8 views
7

In den letzten Tagen habe ich versucht, Bestätigungs-E-Mails von meiner GAE-App zu senden, aber mein GAE-E-Mail-Kontingent hat seine Grenze erreicht, und obwohl ich die Abrechnung aktiviert habe Das E-Mail-Kontingent wird nicht zurückgesetzt, solange ich die Abrechnung aktiviert habe.Verwenden von Mandrill/MailChimp in der Google App Engine zum Senden von Bestätigungs-E-Mails

Ich habe mit Mandrill/MailChimp (über Wrapper-APIs) untersucht und haben sie E-Mails von meinem Desktop senden. Wenn ich jedoch meinen Code in einer GAE-App verwende und ihn auf dem lokalen Dev-Server oder Online-Server ausfühle, werden keine E-Mails gesendet, da Mail-Snake, Chimpy usw. das Python-Modul "Anfragen" benötigen. Also habe ich das Modul heruntergeladen und an seinem Speicherort in meinem App-Engine-Projekt gespeichert.

Dann habe ich noch einen Fehler ...

File "/home/ahmad/Dropbox/milsal/requests/packages/urllib3/connectionpool.py", line 83, in set_cert 
    'CERT_NONE': ssl.CERT_NONE, 
AttributeError: 'module' object has no attribute 'CERT_NONE' 

Dann erkannte ich, dass die Anfragen Modul auf ssl.py beruht, ist ssl.py ein Python-Wrapper für _ssl (ac Bibliothek nicht von App Engine Python unterstützt (2.7)).

Also versuchte ich ssl.c an dieser Stelle setzen, aber es hat nicht funktioniert ... So, jetzt stecke Ich bin ..

ich thinkink ich bin, auch wenn ich so setzen ssl.c das Python ssl Wrapper-Modul kann es verwenden, ein weiterer Fehler könnte kommen und ich werde nie in der Lage sein, alle Abhängigkeiten zu verfolgen mailchimp/mandrill Python api Wrapper müssen auf GAE-Version von Python laufen, die automatisch auf meinem sind Desktops Python ..

Also obwohl ich E-Mails mit meinem Ubuntu Python senden kann, kann ich sie nicht von GAE senden.

Meine erste Frage ist, ich fragte mich, ob jemand eine mailchimp/mandrill E-Mail von GAE arbeiten. Die zweite Frage lautet: Wenn es keine andere Alternative zu dem gibt, was ich mache, um E-Mails von GAE mit mandrill/mailchimp zu erhalten, wie installiere ich ein Python-Modul in einem GAE-Projekt und all seine Abhängigkeiten automatisch ..?

Vielen Dank für jede Hilfe im Voraus ..

Antwort

4

Sie direkt Mandrills REST API to send a message verwenden können.

Sie können URL Fetch API verwenden, um REST-Anforderungen zu erstellen, und JSON, um Nutzdaten serialisieren/deserialisieren.

+0

Dank! Ich war mir nicht sicher, wie das funktionierte, aber jetzt sehe ich die API zum Abrufen von URLs. Ich versuche es jetzt einzurichten. – user772401

+0

Ich habe das versucht und es zum Laufen gebracht. Vielen Dank für die Hilfe und Ihre Links, die mir geholfen haben, dies zu verstehen. – user772401

+2

Haben Sie einen Beispielcode, den Sie posten können? – JimJty

2

Posting den Code, der für mich gearbeitet, basierend auf @ PeterKnego Antwort:

from google.appengine.api import urlfetch 

def sendMandrillEmail(): 
    json_mandrill = { 
     "key": "YOUR_API_KEY", 
     "message": { 
      "html": "<p>Example HTML content</p>", 
      "subject": "Test subject", 
      "from_email": "[email protected]", 
      "from_name": "Example Name", 
      "to": [ 
       { 
        "email": "[email protected]" 
       } 
      ] 
     } 
    } 
    url = "https://mandrillapp.com/api/1.0/messages/send.json" 
    result = urlfetch.fetch(url=url, 
     payload=json.dumps(json_mandrill), 
     method=urlfetch.POST, 
     headers={'Content-Type': 'application/x-www-form-urlencoded'}) 
+0

Erfordert dieser Code die Einrichtung der DKIM & SPF-Verifizierung für Ihre eigene appengine-Domain? (Haben Sie Ihre Appengine-Site in Ihre eigene Domain migrieren, um E-Mails zu versenden?) – Praxiteles

Verwandte Themen