自用邮件消息通知方式

看到有人询问邮箱APP推荐,就想把自己现在用的方式跟大家讲下,我自己用了一年还是很满意的。

之前用过各种方式,比如运营商的邮箱,QQ邮箱,FCM,MIpush,之后全都放弃了。
要么是考虑到隐私,毕竟注册了太多国外服务,很多东西不想给国内服务商。

要么就是耗电和延迟,FCM这类推送服务,我用起来很不顺,折腾一堆东西,长期开着GOOGLE服务,然后收到消息还是启动APP来给我推送消息,还可能因为各种原因突然断连。

要么APP长期挂后台,调整收件频率,24小时不停的去收邮件,不管是长期后台,还是每隔几分钟去获取新邮件,我都接受不了,这种方式太蠢太浪费资源了。

最后找到了现在很喜欢的方式,cloudflare电子邮件支持worker了,直接在CF的域名邮箱添加个worker,添加个路由,任何发到这个邮箱的邮件,就根据代码推送消息。完全随自己的喜好,推送到微信,TG,短信。

还可以获取发件人邮箱和主题,发给AI判断是否需要推送。

这个方案最好的是整体是服务器进行,全都是触发的,不依赖手机任何服务的实时的。

export default {
  async email(message, env, ctx) {
    // 获取原始发件人邮箱
    let originalSender = '';
    const fromHeader = message.headers.get("From");
    if (fromHeader) {
      // 使用正则表达式提取邮箱地址
      const match = fromHeader.match(/<([^>]+)>/);
      originalSender = match ? match[1] : fromHeader.trim();
    }

    // 如果没有找到发件人,尝试从其他头部获取
    if (!originalSender) {
      const senderHeader = message.headers.get("Sender");
      if (senderHeader) {
        const match = senderHeader.match(/<([^>]+)>/);
        originalSender = match ? match[1] : senderHeader.trim();
      }
    }

    // 如果仍然没有找到,使用一个默认值
    if (!originalSender) {
      originalSender = "未知发件人";
    }

    // 获取邮件主题
    const subject = message.headers.get("Subject") || "无主题";

    // 发送企业微信消息
    const wechatWebhookUrl = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=' // 这里需要填写你的企业微信机器人 Webhook 地址
    const wechatMessage = {
      msgtype: 'text',
      text: {
        content: `收到一封新邮件!\n发件人: ${originalSender}`
      }
    }

    // 将消息发送到企业微信机器人
    const response = await fetch(wechatWebhookUrl, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(wechatMessage)
    })

    // 返回响应
    if (response.ok) {
      return new Response('微信消息发送成功', { status: 200 })
    } else {
      return new Response('微信消息发送失败', { status: 500 })
    }
  }
}

56 个赞

太强了佬,我都是所有邮件转到qq邮箱然后微信推送:joy:

2 个赞

我之前也是这样,考虑到隐私才放弃了,国外服务注册太多了,对国内不把用户隐私当回事的那些公司实在不信任,这些厂家隔三岔五的出点事。

5 个赞

不错不错,学习了

3 个赞

需要自己的域名吗

2 个赞

非技术人员表示羡慕

4 个赞

需要域名

3 个赞

需要cf处购买的,还是其它地方购买的也行

3 个赞

任何地方的都可以,只要在cf托管就行,大家域名不是都在cf托管的吗。

感谢,是的

cf的域名续费一个价,但是一年最便宜4$. 国内第一年的便宜最低8¥,但是续费贵的一批

企业微信机器人和webhook怎么弄呢?

国内有首年一元的,想要长期的有10年50左右的xyz,论坛也有.me域名申请。域名很便宜的,又不是建网站,不需要那些好看的域名,就很便宜的。

1 个赞

我用顺手了而已,你可以用简单点的,比如server酱。

我都是一年一扔。。

只是这种用途的话,完全可以年抛的。

好的,谢谢

刚试了一下这个代码,有没有办法可以获取到邮件的正文,然后一并发送

频率不高的话,通知这一步直接用server酱也可以,还更方便

可以的,可以获取正文的,我只是为了隐私问题,所以没有把正文搞出来而已,还有推送这些也可以直接通过ai来改的,这个代码很简单的。