0

我目前正在尝试将 mandrill 集成到这个基于 Django 的电子邮件网站中。Djrill 是 Django 的推荐包,它代替默认的 SMTP/电子邮件后端,将电子邮件传递到 Mandrill 帐户。

当我尝试通过运行以下命令来测试这个新后端是否正常工作时:

send_mail('Test email', body, 'noreply@*********.com', [user.email], fail_silently=False)

它引发以下错误: http: //pastebin.ca/2239978

谁能指出我的错误?

4

1 回答 1

0

更新:

正如@DavidRobinson 在评论中提到的那样,您没有从 mandrill API 身份验证调用中获得成功的响应。您应该仔细检查您的 API 密钥。

如果正确,请尝试使用 curl 发帖{"key": <your api key>, "email": <your from email>}MANDRILL_API_URL + "/users/verify-sender.json"看看是否获得 200。

像这样的东西:

curl -d key=1234567890 -d email=noreply@mydomain.com http://mandrill.whatever.com/user/verify-sender.json

原答案:

Djrill 中还有一个问题会阻止有用的错误消息传播。堆栈跟踪的最后一行是问题所在。

open这是从源代码中获取的整个方法:

def open(self, sender):
    """
    """
    self.connection = None

    valid_sender = requests.post(
        self.api_verify, data={"key": self.api_key, "email": sender})

    if valid_sender.status_code == 200:
        data = json.loads(valid_sender.content)
        if data["is_enabled"]:
            self.connection = True
            return True
    else:
        if not self.fail_silently:
            raise

看看它是如何说raise没有异常论点的?该语法只允许在except块内使用,并引发当前正在处理的异常。except它在块外不起作用。

Djrill 中的一个未解决问题提到了发送失败并链接了一个据称可以修复它的分叉。我怀疑 Djrill 没有得到很好的支持,你可能会完全尝试那个 fork 或其他解决方案。

于 2012-10-05T19:54:17.090 回答