OpenClaw 邮件通知配置需要根据具体版本和环境进行调整,以下是通用的配置步骤和常见方案:

基于 OpenClaw 原生配置(如果支持)
配置文件位置
通常位于:
config/config.py
config/mail_config.py
config/settings.py
邮件配置参数示例
MAIL_PORT = 465 # 端口,SSL通常为465,TLS为587 MAIL_USE_SSL = True # 使用SSL加密 MAIL_USE_TLS = False # 使用TLS加密(与SSL二选一) MAIL_USERNAME = 'your_email@example.com' MAIL_PASSWORD = 'your_password_or_app_password' MAIL_DEFAULT_SENDER = 'your_email@example.com' # 默认发件人 # 通知配置 NOTIFICATION_MAIL_ENABLED = True NOTIFICATION_RECIPIENTS = ['admin@example.com', 'user@example.com'] NOTIFICATION_EVENTS = ['task_complete', 'task_failed', 'system_alert']
常见邮件服务商配置示例
QQ邮箱/腾讯企业邮箱
MAIL_SERVER = 'smtp.qq.com' MAIL_PORT = 465 MAIL_USE_SSL = True MAIL_USERNAME = 'your_qq@qq.com' MAIL_PASSWORD = '授权码' # 不是QQ密码,需要在QQ邮箱设置中获取
163邮箱
MAIL_SERVER = 'smtp.163.com' MAIL_PORT = 465 MAIL_USE_SSL = True MAIL_USERNAME = 'your_email@163.com' MAIL_PASSWORD = '授权码'
Gmail
MAIL_SERVER = 'smtp.gmail.com' MAIL_PORT = 587 MAIL_USE_TLS = True MAIL_USERNAME = 'your_email@gmail.com' MAIL_PASSWORD = '应用专用密码' # 需要启用两步验证后生成
阿里云企业邮箱
MAIL_SERVER = 'smtp.mxhichina.com' # 或 smtp.qiye.aliyun.com MAIL_PORT = 465 MAIL_USE_SSL = True MAIL_USERNAME = 'your_email@yourdomain.com' MAIL_PASSWORD = '邮箱密码'
配置步骤
步骤1:检查 OpenClaw 版本
# 查看项目结构 find . -name "*mail*" -type f find . -name "*config*" -type f
步骤2:修改配置文件
# 备份原配置 cp config.py config.py.backup # 编辑配置文件 vim config.py # 或使用其他编辑器
步骤3:测试邮件发送
# OpenClaw 提供测试命令 python test_mail.py # 或 python manage.py test_email
步骤4:重启服务
# 根据部署方式重启 systemctl restart openclaw # systemd supervisorctl restart openclaw # supervisor docker-compose restart # docker
故障排除
常见问题1:连接被拒绝
解决方案:
1. 检查防火墙是否开放相应端口
2. 确认邮件服务器地址和端口正确
3. 尝试切换SSL/TLS设置
常见问题2:认证失败
解决方案:
1. 确认用户名密码正确
2. 对于第三方邮箱,可能需要使用授权码而非密码
3. 检查是否开启SMTP服务
常见问题3:邮件发送成功但收不到
解决方案:
1. 检查垃圾邮件箱
2. 确认收件人地址正确
3. 检查发件人域名是否被反垃圾策略拦截
进阶配置
邮件模板配置
# 自定义邮件模板
MAIL_TEMPLATES = {
'task_complete': 'templates/mail/task_complete.html',
'task_failed': 'templates/mail/task_failed.html',
'daily_report': 'templates/mail/daily_report.html',
}
条件通知
# 根据任务类型或结果发送不同通知
NOTIFICATION_RULES = {
'critical_error': {
'level': 'high',
'recipients': ['admin@example.com'],
'immediate': True
},
'warning': {
'level': 'medium',
'schedule': 'daily',
'recipients': ['team@example.com']
}
}
邮件队列配置(避免阻塞)
# 使用Celery或RQ进行异步发送 CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_MAIL_QUEUE = 'mail_queue'
安全建议
-
不要硬编码密码:使用环境变量
import os MAIL_PASSWORD = os.getenv('MAIL_PASSWORD') -
使用专用邮箱:不要使用个人主邮箱
-
定期更换授权码
-
启用邮件发送日志
MAIL_DEBUG = True LOG_MAIL_EVENTS = True
快速测试脚本
如果OpenClaw没有提供测试工具,可以使用以下Python脚本测试:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
def test_mail_config():
# 使用你的配置
smtp_server = 'smtp.example.com'
port = 465
username = 'your_email@example.com'
password = 'your_password'
# 创建邮件
msg = MIMEText('OpenClaw邮件测试', 'plain', 'utf-8')
msg['From'] = username
msg['To'] = 'test@example.com'
msg['Subject'] = Header('OpenClaw测试邮件', 'utf-8')
try:
# 连接服务器并发送
server = smtplib.SMTP_SSL(smtp_server, port)
server.login(username, password)
server.sendmail(username, ['test@example.com'], msg.as_string())
server.quit()
print("邮件发送成功!")
except Exception as e:
print(f"发送失败: {str(e)}")
if __name__ == '__main__':
test_mail_config()
注意:具体配置可能因OpenClaw版本而异,如果以上方法不适用,请提供:
- OpenClaw的版本号
- 项目目录结构
- 现有的配置文件内容
这样我可以给出更精确的配置指导。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。