看到有人询问邮箱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 })
}
}
}