一个也是唯一的django应用程序,用于接收和发送带有模板和多种配置的邮件。

django_mail_admin的Python项目详细描述


https://badge.fury.io/py/django_mail_admin.svghttps://travis-ci.org/Bearle/django_mail_admin.svg?branch=masterhttps://codecov.io/gh/delneg/django_mail_admin/branch/master/graph/badge.svg

一个也是唯一一个Django应用程序,用于接收和发送带有模板和多种配置的邮件。

屏幕截图

https://github.com/Bearle/django_mail_admin/blob/master/screenshots/1.jpg?raw=truehttps://github.com/Bearle/django_mail_admin/blob/master/screenshots/2.jpg?raw=true

功能

  • Django邮箱中的所有内容
  • Django邮局拥有的一切
  • 数据库配置-激活要发送的发件箱,激活要接收的邮箱
  • 模板
  • 可翻译
  • 邮件-使用send_many()或“cc”和“bcc”甚至收件人-所有这些都接受以逗号分隔的电子邮件列表

文档

完整的文档位于https://django_mail_admin.readthedocs.io

快速启动

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',)

可选要求

  1. django_admin_row_actions有关管理界面中一些有用操作的信息
  2. 申请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

学分

用于呈现此包的工具:

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像