You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloudflare Email Worker自动回复邮件无正文问题求助

Cloudflare Email Worker自动回复正文为空的解决方案

问题分析

你的代码能正常发送邮件、主题和收发件人信息正确,但正文始终为空,核心原因是手动构造MIME消息时的格式问题,或对message.reply()方法的用法有误。

解决方案1:使用message.reply()简化参数(推荐)

无需依赖mimetext,直接通过reply()的参数指定内容,Cloudflare会自动处理MIME封装,避免格式错误:

import { EmailMessage } from "cloudflare:email";

export default {
  async email(message, env, ctx) {
    await message.reply({
      sender: { name: "Me", addr: "email@email.com" },
      subject: "Auto-reply",
      headers: {
        "In-Reply-To": message.headers.get("Message-ID")
      },
      text: "This is an auto-reply", // 纯文本版本
      html: "This is an <b>auto-reply</b>" // HTML版本
    });
  }
}

解决方案2:修正mimetext用法

如果坚持使用mimetext,需确保生成完整的MIME结构,且直接将raw内容传给reply(),无需额外封装EmailMessage:

import { createMimeMessage } from "mimetext";

export default {
  async email(message, env, ctx) {
    const msg = createMimeMessage();
    msg.setHeader("In-Reply-To", message.headers.get("Message-ID"));
    msg.setSender({ name: "Me", addr: "email@email.com" });
    msg.setRecipient(message.from);
    msg.setSubject("Auto-reply");
    
    // 同时添加纯文本和HTML版本,兼容不同邮件客户端
    msg.addMessage({
      contentType: 'text/plain',
      data: "This is an auto-reply"
    });
    msg.addMessage({
      contentType: 'text/html',
      data: "This is an <b>auto-reply</b>"
    });

    // 直接传入MIME raw内容,无需构造EmailMessage
    await message.reply(msg.asRaw());
  }
}

错误用法说明

你之前尝试的replyMessage.message = {...}是无效的,EmailMessage实例没有该可写属性,无法通过这种方式设置正文内容。

内容的提问来源于stack exchange,提问作者Mike Simmons

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 23:11:02