首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否在所有应用程序中替换django.core.mail.send_mail()?

是否在所有应用程序中替换django.core.mail.send_mail()?
EN

Stack Overflow用户
提问于 2012-08-12 09:52:07
回答 1查看 533关注 0票数 1

是否可以将整个项目(包括INSTALLED_APPS中的第三方项目)中对django.core.mail.send_mail()的调用替换为自定义send_mail()

我正在将django-mailer集成到我的项目中,它为django.core.mail.send_mail()提供了一个替代的send_mail()。由于两者使用相同的函数签名,文档建议在通常导入Django提供的版本的地方导入django-mailer版本,如下所示:

代码语言:javascript
运行
复制
# favour django-mailer but fall back to django.core.mail
from django.conf import settings

if "mailer" in settings.INSTALLED_APPS:
    from mailer import send_mail
else:
    from django.core.mail import send_mail

这适用于我自己的应用程序代码,但我也想在使用django.core.mail.send_mail()的第三方应用程序中进行相同的更改。现在,当这些应用程序尝试发送电子邮件时,我遇到了错误。

Django是否提供了任何类型的钩子来替代django.core.mail.send_mail(),或者有变通方法吗?现在,我正在考虑派生每个发送电子邮件的第三方项目,并添加上面的条件导入代码,但这显然并不理想。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-12 10:32:13

Django有email backends,可以让你改写从django.core.mail发送电子邮件的方式,而不是通过SMTP。有一些可以让您将它们保存在本地,等等;django-mailer还包括一个(as described in usage.txt),用于执行您想要做的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11919118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档