在Google App Engine上使用Mandrill/MailChimp发送确认电子邮件

7
在过去几天里,我一直试图从我的GAE应用程序发送确认电子邮件,但是我的GAE电子邮件配额已经达到了上限,尽管我已经启用计费,但是由于我刚刚启用计费,因此我的电子邮件配额需要一段时间才能重置。
我研究了使用Mandrill/MailChimp(通过包装API)并已经让它们从我的桌面发出电子邮件。然而,当我在GAE应用程序中使用我的代码,并在本地开发服务器或在线服务器上运行时,它们无法发送电子邮件,因为mailsnake、chimpy等都需要“requests”Python模块。因此,我下载了这个模块,并将其正确放置在我的应用引擎项目的位置。
接着我又遇到了另一个错误...
  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'

然后我意识到requests模块依赖于ssl.py,ssl.py是一个Python包装器,用于_ssl(这是一个不受App Engine Python(2.7)支持的C库)。
所以我尝试把ssl.c放在那个位置,但它没有起作用...所以现在我卡住了...
我心想,即使我将ssl.c放置在那里,以便Python ssl包装器模块可以使用它,另一个错误可能会出现,我将永远无法跟上追逐mailchimp/mandrill Python API包装器在GAE的版本上运行所需的所有依赖项,而这些依赖项对于我的台式机的Python来说是自动存在的。
因此,虽然我可以使用我的Ubuntu Python发送电子邮件,但我无法从GAE发送它们。
我的第一个问题是,我想知道是否有人成功地从GAE发送了Mailchimp/Mandrill电子邮件。
第二个问题是:如果没有其他选择来让它们从Mandrill/Mailchimp发送电子邮件,我该如何自动安装GAE项目中的Python模块及其所有依赖项..?
提前感谢您的帮助。
2个回答

4

谢谢!我不确定这是如何工作的,但现在我看到了URL获取API。我现在要尝试设置它。 - user772401
我尝试了这个并且让它工作了。再次感谢您的帮助和链接,这些帮助我理解了这个。 - user772401

2

根据@PeterKnego的答案,我发布了适用于我的代码:

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": "example@email.com",
            "from_name": "Example Name",
            "to": [
                {
                    "email": "example.to@email.com"
                }
            ]
        }
    }
    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'})

1
这段代码是否需要在您自己的appengine域上设置DKIM和SPF验证?(即,您是否需要将appengine站点迁移到自己的域以发送电子邮件?) - Praxiteles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接