2012-10-21 9 views
7

Przez ostatnie kilka dni próbowałem wysyłać wiadomości potwierdzające z mojej aplikacji GAE, ale mój limit GAE został osiągnięty i chociaż mam włączone płatności Przydział e-mail nie zostanie zresetowany na jakiś czas, ponieważ właśnie włączyłem rozliczenia.Używanie Mandrill/MailChimp na Google App Engine do wysyłania wiadomości e-mail z potwierdzeniami

Sprawdziłem, jak korzystać z Mandrill/MailChimp (poprzez interfejs API) i mam je do wysyłania e-maili z mojego pulpitu. Jednak gdy użyję mojego kodu w aplikacji GAE i uruchomię go na lokalnym serwerze dev lub serwerze online, nie będą wysyłali e-maili, ponieważ mailsnake, chimpy itp. Wymagają modułu pytającego "żądania". Więc pobrałem moduł i prawidłowo umieściłem go w jego lokalizacji w moim projekcie silnika aplikacji.

Potem dostałem kolejny błąd ...

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' 

Wtedy zdałem sobie sprawę, że moduł wnioski opiera się na ssl.py, ssl.py to wrapper Pythona dla _ssl (biblioteka ac nie jest obsługiwana przez pytona App Engine (2.7)).

Więc starałem oddanie ssl.c w tym miejscu, ale to nie działa ... Więc teraz utknąłem ..

jestem thinkink do siebie, nawet jeśli i tak umieścić ssl.c moduł pendżla ssl może go użyć, może pojawić się inny błąd i nigdy nie będę w stanie nadążyć za wszystkimi zależnościami wrapperów wrapperów mailchimp/mandrill python trzeba uruchomić na wersji Pythona GAE, które są automatycznie na moim desktops python ..

Więc chociaż mogę wysyłać e-maile za pomocą mojego Pythona Ubuntu, nie mogę wysłać ich z GAE.

Moje pierwsze pytanie brzmi, zastanawiałem się, czy ktoś dostał maila z e-mailem/mandrill do pracy z GAE.

Pytanie drugie: Jeśli nie ma innych alternatyw dla tego, co robię, aby otrzymywać wiadomości e-mail wysyłane z GAE przy użyciu mandrill/mailchimp, jak mam zainstalować moduł Pythona w projekcie GAE i wszystkie jego zależności automatycznie ..?

Dzięki za wszelką pomoc z góry ..

Odpowiedz

4

można korzystać bezpośrednio Mandrills REST API to send a message.

Można użyć numeru URL Fetch API, aby żądania REST i JSON były przekształcane do postaci szeregowej/deserializacyjnej.

+0

Dzięki! Nie byłem pewien, jak to działało, ale teraz widzę interfejs API pobierania URL. Teraz próbuję to ustawić. – user772401

+0

Próbowałem tego i udało mi się. Jeszcze raz dziękuję za pomoc i linki, które pomogły mi to zrozumieć. – user772401

+2

Czy masz przykładowy kod, który możesz opublikować? – JimJty

2

publikowania kodu, który pracował dla mnie na podstawie @ odpowiedź PeterKnego za:

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

Czy ten kod wymaga skonfigurowania weryfikacji DKIM i SPF we własnej domenie Appengine? (tzn. czy migrowałeś swoją witrynę appengine do swojej własnej domeny, aby wysyłać e-maile?) – Praxiteles