一个也是唯一的django应用程序,用于接收和发送带有模板和多种配置的邮件。
django_mail_admin的Python项目详细描述
一个也是唯一一个Django应用程序,用于接收和发送带有模板和多种配置的邮件。
屏幕截图
功能
- Django邮箱中的所有内容
- Django邮局拥有的一切
- 数据库配置-激活要发送的发件箱,激活要接收的邮箱
- 模板
- 可翻译
- 邮件-使用send_many()或“cc”和“bcc”甚至收件人-所有这些都接受以逗号分隔的电子邮件列表
文档
快速启动
q:支持哪些版本的django/python? a:看看https://travis-ci.org/delneg/django_mail_admin
安装django邮件管理员:
pip install django_mail_admin
将其添加到已安装的应用程序中
INSTALLED_APPS=(...'django_mail_admin',...)
运行migrate:
python manage.py migrate django_mail_admin
在django的settings.py:
EMAIL_BACKEND = 'django_mail_admin.backends.CustomEmailBackend'
将cron/celeriy/rq作业设置为发送/接收电子邮件,例如
* * * * * (cd $PROJECT; python manage.py send_queued_mail --processes=1 >> $PROJECT/cron_mail.log 2>&1) * * * * * (cd $PROJECT; python manage.py get_new_mail >> $PROJECT/cron_mail_receive.log 2>&1) 0 1 * * * (cd $PROJECT; python manage.py cleanup_mail --days=30 >> $PROJECT/cron_mail_cleanup.log 2>&1)
注意
一旦你进入邮箱接收电子邮件,你可以很容易地验证你 已正确配置邮箱:
从django管理员,使用来自该操作的“获取新邮件”操作 邮箱更改列表上的下拉列表
或使用 get_new_mail运行管理命令:
python manage.py get_new_mail
如果还配置了发件箱,则可以验证它是否正常工作,例如
from django_mail_admin import mail, models mail.send( 'from@example.com', 'recipient@example.com', # List of email addresses also accepted subject='My email', message='Hi there!', priority=models.PRIORITY.now, html_message='Hi <strong>there</strong>!', )
自定义电子邮件后端
默认情况下,django_mail_admin使用在数据库中查找发件箱模型的自定义电子邮件后端。如果你想的话 使用不同的后端,您可以通过配置BACKENDS来完成此操作,但您将无法使用发件箱,并且必须在django的settings.py中设置电子邮件主机等。
例如,如果要使用django-ses:
DJANGO_MAIL_ADMIN = { 'BACKENDS': { 'default': 'django_mail_admin.backends.CustomEmailBackend', 'smtp': 'django.core.mail.backends.smtp.EmailBackend', 'ses': 'django_ses.SESBackend', } }
然后,您可以选择发送邮件时要使用的后端:
# If you omit `backend_alias` argument, `default` will be usedmail.send('from@example.com',['recipient@example.com'],subject='Hello',)# If you want to send using `ses` backendmail.send('from@example.com',['recipient@example.com'],subject='Hello',backend='ses',)
可选要求
- django_admin_row_actions有关管理界面中一些有用操作的信息
- 申请gmail的社交网站
常见问题解答
q:为什么要写这个?
a:要同时接收和发送电子邮件,您必须安装邮局和django撸u邮箱。 即使你这样做了,你也必须在管理界面上工作,让它看起来更漂亮,以某种方式正确链接回复等。 所以我决定合并这两个功能,清除它们之间的混乱,并添加一些其他有用的功能。
q:为什么删除对python 2的支持?
a:因为f*ck python2。真的,已经九点了!它问世多年了。去看看https://github.com/brettcannon/caniusepython3
q:为什么它被命名为django_mail_admin,它与admin有什么关系?
a:好吧,这个包的第一个版本(它就生活在一个非常大的admin.py中)使用标准的django管理界面来轻松管理邮件。
q:有哪些语言可用?
a:目前有俄语和英语两种语言。请随意添加您的:
source <YOURVIRTUALENV>/bin/activate python manage.py makemessages -l YOUR_LOCALE -i venv python manage.py compilemessages -l YOUR_LOCALE
q:为什么删除对多语言模板的支持?
a:好吧,我们有django模型的翻译。您可以轻松地派生此应用程序并相应地重写emailtemplate模型(models/templates.py)。 我认为在邮件相关的应用程序中不需要这样的开销。
q:我不想我的外向型将电子邮件保存到管理界面后排队等待发送,我该怎么办?
a:只需重写outgoingemailadmin的save\u模型方法。
q:我能和你联系吗?我想要一个新的功能被实现/错误修正!
a:请随时使用问题和请求与我联系,我将检查所有问题并在可能时回答。
运行测试
代码真的有用吗?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install tox (myenv) $ tox