无法使用Graphite向图表发送电子邮件

时间:2014-05-19 13:48:50

标签: django email smtp graphite

我无法使用Graphite通过电子邮件发送图表。我在local_settings.py中的设置是:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 25
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''

我已经能够通过telnet和pyhton manage.py shell使用以下方式发送SMTP电子邮件:

from django.core.mail import EmailMessage, get_connection  
get_connection()  
>>> django.core.mail.backends.smtp.EmailBackend object at 0x1bb6310   
email = EmailMessage('Hello', 'This is a test', 'user@example.com',['user@example.com'])
email.send(fail_silently=False)  
>>> 1

当我尝试从石墨仪表板发送图表时,在我填写“从”,“到”,“主题”和“消息”字段后,我收到一个消息框,其中包含一个“请”的进度条等待......处理请求“在不到一秒的时间内消失。没有图表被发送。

我在CentOS 6.5上使用Graphite 0.9.12。我从EPEL下载了Graphite RPM及其依赖项。使用Graphite的其他所有功能都正常。我甚至使用Seyren来补充它,我在发送Seyren的电子邮件时没有任何问题。但我无法让Graphite通过电子邮件发送渲染图。

我也尝试过使用Gmail帐号:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'me@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_USE_TLS = True

这也不起作用。

我也尝试过不同的Django后端。

更新

Graphite的电子邮件功能引发错误:

"POST /dashboard/email HTTP/1.1" 500 5068

其他POST命令成功:

"POST /metrics/find/ HTTP/1.1" 200 186
"POST /dashboard/find/ HTTP/1.1" 200 87

1 个答案:

答案 0 :(得分:1)

发现同样的怪异,将Debug = True添加到 local_settings.py 并使用Firebug观察输出。文件 graphite / dashboard / views.py 似乎在第365行打破:

    target = QueryDict(graph_params.pop('target'))

返回的目标是一个列表,QueryDict对列表执行。我用Django 1.4+读了一些关于QueryDict.lists()和QueryDict.dict()的内容,但其余的代码似乎也不期望列出目标。如果您将目标更改为仅使用例如目标列表的第一个成员然后通过电子邮件发送作品,但是......这根本不是真正的修复。

target = QueryDict(graph_params.pop('target')[0])