文章目录

龙虾 OpenClaw 自动发邮件:批量通知不求人

发布于 2026-04-01 16:53:04 · 浏览 16 次 · 评论 0 条

龙虾 OpenClaw 自动发邮件:批量通知不求人

在日常工作中,面对大量客户通知、会议邀请或报表分发,手动逐个发送邮件不仅耗时,而且容易出错。使用 OpenClaw 自动化工具,可以通过简单的配置实现批量邮件的自动发送,将重复性工作降至最低。本文将指导你从零开始配置 OpenClaw,实现邮件批发的自动化流程。


准备工作

在开始编写脚本之前,需要完成基础环境的配置和必要信息的收集。

  1. 确认 OpenClaw 已安装在本地环境中。打开终端或命令行工具,输入 openclaw --version。如果返回版本号,说明安装成功。

  2. 开启 邮箱的 SMTP 服务。以常用企业邮箱为例,登录 邮箱网页版,进入 设置页面,找到“POP3/SMTP/IMAP”设置选项,开启 SMTP 服务,并生成记录授权密码。此密码将用于 OpenClaw 登录发件箱,而非你的常规登录密码。

  3. 整理 收件人名单。新建一个 Excel 或 CSV 文件,将收件人信息按照固定的列名排列。建议包含“姓名”和“邮箱”两列。


配置文件设置

为了安全起见,敏感信息不应直接写在主脚本中。OpenClaw 推荐使用单独的配置文件管理环境变量。

  1. 新建一个名为 config.yaml 的文件。

  2. 录入以下 SMTP 服务器配置信息。请根据你的实际邮箱服务商提供的信息替换具体参数。

mail:
  host: "smtp.example.com"
  port: 465
  user: "your_email@example.com"
  pass: "your_authorization_code"
  from_name: "通知中心"

注意port 通常为 465(SSL加密)或 587(TLS加密)。pass 必须填写步骤一中获取的授权码。


准备收件人数据

OpenClaw 支持通过 CSV 文件批量读取数据。

  1. 创建 recipients.csv 文件。

  2. 设置 表头,第一行写入列名 name,email

  3. 填入 数据,每一行代表一个收件人,使用英文逗号分隔。示例如下:

name,email
张三,zhangsan@example.com
李四,lisi@example.org
王五,wangwu@example.net

编写自动化脚本

一切就绪后,开始编写核心控制脚本 send_mail.py

  1. 引入 OpenClaw 的邮件模块。

  2. 读取 配置文件和收件人列表。

  3. 定义 邮件模板。为了让通知更人性化,我们可以在邮件内容中嵌入变量。

以下是完整的脚本代码示例:

import openclaw
import yaml
import csv

# 1. 加载配置
with open("config.yaml", "r", encoding="utf-8") as f:
    config = yaml.safe_load(f)

mail_conf = config["mail"]

# 2. 初始化邮件服务器连接
server = openclaw.MailServer(
    host=mail_conf["host"],
    port=mail_conf["port"],
    user=mail_conf["user"],
    password=mail_conf["pass"]
)

# 3. 读取收件人数据
recipients = []
with open("recipients.csv", "r", encoding="utf-8") as f:
    reader = csv.DictReader(f)
    for row in reader:
        recipients.append(row)

# 4. 定义邮件内容模板
subject = "关于本周会议安排的通知"
# 使用 f-string 格式化内容
template_content = """
尊敬的 {name}:

您好!

诚挚邀请您参加本周五下午 3 点的项目进度汇报会议。
请准时参加。

祝工作愉快!
"""

# 5. 遍历列表并发送
print("开始发送任务...")
for person in recipients:
    try:
        # 填充模板内容
        body = template_content.format(name=person["name"])

        # 构建邮件对象
        email = openclaw.Email(
            subject=subject,
            body=body,
            to=person["email"]
        )

        # 发送邮件
        server.send(email)
        print(f"成功发送给: {person['name']} ({person['email']})")

    except Exception as e:
        print(f"发送给 {person['name']} 失败, 错误原因: {e}")

print("所有任务执行完毕。")

执行与监控

脚本编写完成后,即可执行自动化任务。

  1. 保存 上述代码为 send_mail.py,确保该文件与 config.yamlrecipients.csv 位于同一目录下。

  2. 运行 脚本。在命令行中输入

python send_mail.py
  1. 观察 终端输出。屏幕会逐行打印发送状态。如果看到“所有任务执行完毕”,且无报错信息,说明邮件已全部发出。

  2. 登录 收件箱,检查 邮件是否送达,并确认 内容中的 {name} 变量是否已正确替换为具体的姓名。

为了防止被邮件服务商判定为垃圾邮件,建议在两封邮件之间增加短暂的延迟。你可以在循环中添加休眠代码:

import time
# ... (在 server.send(email) 之后添加)
time.sleep(2)  # 暂停 2 秒

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文