Seafile中邮件类型
当前 Seafile 支持发送五种类型的邮件:
-
用户重置密码
-
系统管理员添加新用户
-
系统管理员重置用户密码
-
用户发送文件 / 文件夹共享和上传链接
-
未读通知提醒
前四种邮件类型会立即发送,最后一种类型会由后台任务定期发送。
发送邮件提醒
请在
seahub_settings.py
中添加如下配置以启用邮件发送:
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.example.com' # SMTP 服务器
EMAIL_HOST_USER = 'username@example.com' # 用户名和域名
EMAIL_HOST_PASSWORD = 'password' # 密码
EMAIL_PORT = 587
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER
注意:
如果邮件服务仍无法使用,可查看日志文件
logs/seahub.log
,查找可能的错误原因。
如果希望使用无认证邮件服务,可将
EMAIL_HOST_USER
和
EMAIL_HOST_PASSWORD
留空 (
''
),但邮件将不会带有
From:
地址。
关于使用 SSL(端口 465):
1.
端口 587 使用 STARTTLS 建立连接,端口 465 用于 SSL 连接。
2.
Django 1.8 及以上版本支持两者。
3.
若希望使用 SSL(465),请将
EMAIL_USE_SSL = True
替代
EMAIL_USE_TLS
。
Gmail 邮箱示例:
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'username@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = '587'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER
QQ 邮箱示例:
EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.qq.com'
EMAIL_HOST_USER = 'username@domain.com'
EMAIL_HOST_PASSWORD = 'Auth_Code'
EMAIL_PORT = '465'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER
注意
:QQ邮箱的配置示例中,'EMAIL_HOST_PASSWORD'并非是邮箱账号的登陆密码,而是一个16位的授权码,获取此授权码的详细流程请参考:
http://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28
163 邮箱未测试成功 (有些国内公共邮箱做了限制的,是不能配置成功的.)
126 邮箱:
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.vip.126.com'
EMAIL_HOST_USER = 'test@vip.126.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = '587'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER
更改电子邮件的
reply to
你可以通过将以下设置添加到 seahub_settings.py 中来更改电子邮件的回复字段,仅影响文件共享链接的电子邮件发送。
# 将 reply to 邮件头设置为用户的电子邮件地址或不设置,默认为 “False”。
# 更多请参考
ADD_REPLY_TO_HEADER = True
配置邮件发送后台任务
后台任务将定期运行以检查用户是否有新的未读通知,如果有,它将向该用户发送提醒电子邮件。后台电子邮件发送任务由 seafevents.conf 控制。
[SEAHUB EMAIL]
## 启用用户未读通知邮件提醒
enabled = true
## 邮件发送间隔,可用 s(秒)、m(分钟)、h(小时)、d(天)
interval = 30m
为邮件添加 S/MIME 签名
如果希望邮件通过 S/MIME 签名,请在
seahub_settings.py
中添加配置:
ENABLE_SMIME = True
SMIME_CERTS_DIR = /opt/seafile/seahub-data/smime-certs # 包含 cert.pem 和 private_key.pem
证书可通过
openssl
命令生成,也可向证书厂商申请。示例生成命令:
mkdir -p /opt/seafile/seahub-data/smime-certs
cd /opt/seafile/seahub-data/smime-certs
openssl req -x509 -newkey rsa:4096 -keyout private_key.pem -outform PEM -out cert.pem -days 3650 -nodes
注意:
部分邮件客户端可能无法验证命令行生成的证书,建议向厂商申请证书。
自定义邮件消息
最简单的方法是设置
SITE_NAME
变量。若需要更深度定制,可修改邮件模板。
主题行可能因不同版本而异,此内容基于 5.0.0 版本,重新启动 Seahub 以使更改生效。
邮件基础模版
你可以将 email_base.html 复制到
seahub-data/custom/templates/email_base.html
并修改新的文件。这样,在升级后自定义内容将得以保留。
用户重置密码
主题:
seahub/seahub/auth/forms.py line:127
send_html_email(_("Reset Password on %s") % site_name,
email_template_name, c, None, [user.username])
你可以将 password_reset_email.html 复制到
seahub-data/custom/templates/registration/password_reset_email.html
并修改新的文件。这样,在升级后定制内容将得以保留。
系统管理员添加新用户
主题:
seahub/seahub/views/sysadmin.py line:424
send_html_email(_(u'Password has been reset on %s') % SITE_NAME,
'sysadmin/user_reset_email.html', c, None, [email])
你可以将 user_add_email.html 复制到
seahub-data/custom/templates/sysadmin/user_add_email.html
并修改新的文件。这样,在升级后自定义内容将得以保留。
系统管理员重置用户密码
主题:
seahub/seahub/views/sysadmin.py line:1224
send_html_email(_(u'Password has been reset on %s') % SITE_NAME,
'sysadmin/user_reset_email.html', c, None, [email])
你可以将 user_reset_email.html 复制到
seahub-data/custom/templates/sysadmin/user_reset_email.html
并修改新文件。这样,在升级后自定义内容将得以保留。
用户发送文件/文件夹共享链接
主题:
seahub/seahub/share/views.py line:913
try:
if file_shared_type == 'f':
c['file_shared_type'] = _(u"file")
send_html_email(_(u'A file is shared to you on %s') % SITE_NAME,
'shared_link_email.html',
c, from_email, [to_email],
reply_to=reply_to
)
else:
c['file_shared_type'] = _(u"directory")
send_html_email(_(u'A directory is shared to you on %s') % SITE_NAME,
'shared_link_email.html',
c, from_email, [to_email],
reply_to=reply_to)
你可以将 shared_link_email.html 复制到
seahub-data/custom/templates/shared_link_email.html
并修改新的文件。这样,在升级后自定义设置将得以保留。
未读消息提醒
主题:
seahub/seahub/share/views.py
send_html_email(_('New notice on %s') % settings.SITE_NAME,
'notifications/notice_email.html', c,
None, [to_user])
你可以将 notice_email.html 复制到
seahub-data/custom/templates/notice_email.html
并修改新的文件。这样,在升级后自定义设置将得以保留。