邮件服务器配置

openclaw openclaw官方 1

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

邮件服务器配置-第1张图片-OpenClaw开源下载|官方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'

安全建议

  1. 不要硬编码密码:使用环境变量

    import os
    MAIL_PASSWORD = os.getenv('MAIL_PASSWORD')
  2. 使用专用邮箱:不要使用个人主邮箱

  3. 定期更换授权码

  4. 启用邮件发送日志

    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版本而异,如果以上方法不适用,请提供:

  1. OpenClaw的版本号
  2. 项目目录结构
  3. 现有的配置文件内容

这样我可以给出更精确的配置指导。

标签: 邮件服务器 配置

抱歉,评论功能暂时关闭!