增加邮件发送日志

sh_branch
liangliang 8 years ago
parent 470de704bb
commit 3c67bb143b

@ -53,6 +53,7 @@ admin_site.register(SideBar, SideBarAdmin)
admin_site.register(BlogSettings, BlogSettingsAdmin)
admin_site.register(commands, CommandsAdmin)
admin_site.register(EmailSendLog, EmailSendLogAdmin)
admin_site.register(BlogUser, BlogUserAdmin)

@ -148,7 +148,23 @@ class CommonMarkdown():
def send_email(emailto, title, content):
msg = EmailMultiAlternatives(title, content, from_email=settings.DEFAULT_FROM_EMAIL, to=emailto)
msg.content_subtype = "html"
_thread.start_new_thread(msg.send, (msg,))
def sendmsg_withlog():
from servermanager.models import EmailSendLog
log = EmailSendLog()
log.title = title
log.content = content
log.emailto = ','.join(emailto)
try:
result = msg.send()
log.send_result = result > 0
except Exception as e:
logger.error(e)
log.send_result = False
log.save()
_thread.start_new_thread(sendmsg_withlog, ())
def parse_dict_to_url(dict):

@ -261,6 +261,6 @@ class BlogSettings(models.Model):
raise ValidationError(_('只能有一个配置'))
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
from DjangoBlog.utils import cache
cache.clear()
super().save(*args, **kwargs)

@ -1,10 +1,18 @@
from django.contrib import admin
# Register your models here.
from .models import commands
from .models import commands, EmailSendLog
class CommandsAdmin(admin.ModelAdmin):
list_display = ('title', 'command', 'describe')
admin.site.register(commands, CommandsAdmin)
class EmailSendLogAdmin(admin.ModelAdmin):
list_display = ('title', 'emailto', 'send_result', 'created_time')
readonly_fields = ('title', 'emailto', 'send_result', 'created_time', 'content')
def has_add_permission(self, request):
return False
def has_module_permission(self, request):
return False

@ -15,3 +15,18 @@ class commands(models.Model):
class Meta:
verbose_name = '命令'
verbose_name_plural = verbose_name
class EmailSendLog(models.Model):
emailto = models.CharField('收件人', max_length=300)
title = models.CharField('邮件标题', max_length=2000)
content = models.TextField('邮件内容')
send_result = models.BooleanField('结果', default=False)
created_time = models.DateTimeField('创建时间', auto_now_add=True)
def __str__(self):
return self.title
class Meta:
verbose_name = '邮件发送log'
verbose_name_plural = verbose_name

Loading…
Cancel
Save