龙虾 OpenClaw 自动发邮件:批量通知不求人
在日常工作中,面对大量客户通知、会议邀请或报表分发,手动逐个发送邮件不仅耗时,而且容易出错。使用 OpenClaw 自动化工具,可以通过简单的配置实现批量邮件的自动发送,将重复性工作降至最低。本文将指导你从零开始配置 OpenClaw,实现邮件批发的自动化流程。
准备工作
在开始编写脚本之前,需要完成基础环境的配置和必要信息的收集。
-
确认 OpenClaw 已安装在本地环境中。打开终端或命令行工具,输入
openclaw --version。如果返回版本号,说明安装成功。 -
开启 邮箱的 SMTP 服务。以常用企业邮箱为例,登录 邮箱网页版,进入 设置页面,找到“POP3/SMTP/IMAP”设置选项,开启 SMTP 服务,并生成或记录授权密码。此密码将用于 OpenClaw 登录发件箱,而非你的常规登录密码。
-
整理 收件人名单。新建一个 Excel 或 CSV 文件,将收件人信息按照固定的列名排列。建议包含“姓名”和“邮箱”两列。
配置文件设置
为了安全起见,敏感信息不应直接写在主脚本中。OpenClaw 推荐使用单独的配置文件管理环境变量。
-
新建一个名为
config.yaml的文件。 -
录入以下 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 文件批量读取数据。
-
创建
recipients.csv文件。 -
设置 表头,第一行写入列名
name,email。 -
填入 数据,每一行代表一个收件人,使用英文逗号分隔。示例如下:
name,email
张三,zhangsan@example.com
李四,lisi@example.org
王五,wangwu@example.net
编写自动化脚本
一切就绪后,开始编写核心控制脚本 send_mail.py。
-
引入 OpenClaw 的邮件模块。
-
读取 配置文件和收件人列表。
-
定义 邮件模板。为了让通知更人性化,我们可以在邮件内容中嵌入变量。
以下是完整的脚本代码示例:
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("所有任务执行完毕。")
执行与监控
脚本编写完成后,即可执行自动化任务。
-
保存 上述代码为
send_mail.py,确保该文件与config.yaml及recipients.csv位于同一目录下。 -
运行 脚本。在命令行中输入:
python send_mail.py
-
观察 终端输出。屏幕会逐行打印发送状态。如果看到“所有任务执行完毕”,且无报错信息,说明邮件已全部发出。
-
登录 收件箱,检查 邮件是否送达,并确认 内容中的
{name}变量是否已正确替换为具体的姓名。
为了防止被邮件服务商判定为垃圾邮件,建议在两封邮件之间增加短暂的延迟。你可以在循环中添加休眠代码:
import time
# ... (在 server.send(email) 之后添加)
time.sleep(2) # 暂停 2 秒
暂无评论,快来抢沙发吧!