gmail的邮箱特定邮箱特定信息发送电报

[up主专用,视频内嵌代码贴在这]

要实现仅当收到特定发件人且包含特定关键字的邮件时才转发到Telegram机器人,可以对之前的方案进行调整。以下是具体步骤:

主要为了实现euserv的vps续期邮箱转发到电报里

步骤1:创建Telegram机器人

  1. 在Telegram中搜索BotFather并开始对话。
  2. 使用/newbot命令创建新机器人,按提示设置名称和用户名。
  3. 创建完成后,BotFather会提供API Token,保存好。

步骤2:获取Chat ID

  1. 向你的机器人发送任意消息。

  2. 访问以下URL获取Chat ID:

    https://api.telegram.org/bot/getUpdates

    替换为你的API Token。

  3. 在返回的JSON中找到chat.id,保存好。


步骤3:使用Google Apps Script筛选并转发邮件

  1. 访问Google Apps Script,创建新项目。
  2. 粘贴以下代码,替换,并设置特定发件人和特定关键字:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function forwardSpecificEmailToTelegram() {
var botToken = "<YourBotToken>"; // 替换为你的Telegram Bot Token
var chatId = "<YourChatID>"; // 替换为你的Chat ID
var specificSender = "[email protected]"; // 替换为特定发件人邮箱
var keyword = "重要"; // 替换为特定关键字

// 搜索符合条件的邮件
var query = "is:unread from:" + specificSender + " subject:" + keyword + " OR body:" + keyword;
var threads = GmailApp.search(query);

for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();

for (var j = 0; j < messages.length; j++) {
var message = messages[j];
var subject = message.getSubject();
var body = message.getPlainBody();
var text = "主题: " + subject + "\n\n内容: " + body;

// 发送到Telegram
var url = "https://api.telegram.org/bot" + botToken + "/sendMessage";
var payload = {
"chat_id": chatId,
"text": text
};

var options = {
"method": "post",
"contentType": "application/json",
"payload": JSON.stringify(payload)
};

UrlFetchApp.fetch(url, options);
message.markRead(); // 标记为已读
}
}
}
  1. 保存项目。

步骤4:设置触发器

  1. 在Google Apps Script中,点击左侧的“触发器”图标(时钟形状)。
  2. 点击“添加触发器”,设置以下内容:
    • 选择函数:forwardSpecificEmailToTelegram
    • 选择事件源:时间驱动
    • 选择触发器类型:分钟计时器,并设置间隔(如每1分钟或5分钟)。
  3. 保存触发器。

步骤5:测试

  1. 让特定发件人发送一封包含关键字的邮件到你的Gmail。
  2. 检查Telegram机器人是否收到邮件内容。

注意事项

  1. Gmail搜索语法:

    • from::指定发件人。
    • subject::搜索邮件主题中的关键字。
    • body::搜索邮件正文中的关键字。
    • 你可以根据需要调整搜索条件。
  2. 邮件内容长度:

    • Telegram消息长度有限制(最多4096字符),如果邮件内容过长,可以截取部分内容发送。
  3. 安全性:

    • 确保你的Google Apps Script项目和Telegram Bot Token不会被泄露。

通过以上步骤,你可以实现仅当收到特定发件人且包含特定关键字的邮件时,自动转发到Telegram机器人。




第二次修改

增加多邮箱,多关键字

当然可以!我们可以修改脚本,使其支持多个发件人邮箱和多个关键词(只要邮件内容中包含任意一个关键词就触发转发)。以下是更新后的脚本和说明:


更新后的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
function forwardSpecificEmailToTelegram() {
var botToken = "<YourBotToken>"; // 替换为你的Telegram Bot Token
var chatId = "<YourChatID>"; // 替换为你的Chat ID

// 设置多个发件人邮箱
var specificSenders = ["[email protected]", "[email protected]", "[email protected]"];

// 设置多个关键词(只要包含任意一个关键词就触发)
var keywords = ["重要", "紧急", "URGENT", "提醒"];

// 构建Gmail搜索查询
var senderQuery = specificSenders.map(function(sender) {
return "from:" + sender;
}).join(" OR ");

var keywordQuery = keywords.map(function(keyword) {
return "subject:" + keyword + " OR body:" + keyword;
}).join(" OR ");

var query = "is:unread (" + senderQuery + ") AND (" + keywordQuery + ")";

// 搜索符合条件的邮件
var threads = GmailApp.search(query);

for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();

for (var j = 0; j < messages.length; j++) {
var message = messages[j];
var subject = message.getSubject();
var body = message.getPlainBody();
var text = "主题: " + subject + "\n\n内容: " + body;

// 发送到Telegram
var url = "https://api.telegram.org/bot" + botToken + "/sendMessage";
var payload = {
"chat_id": chatId,
"text": text
};

var options = {
"method": "post",
"contentType": "application/json",
"payload": JSON.stringify(payload)
};

UrlFetchApp.fetch(url, options);
message.markRead(); // 标记为已读
}
}
}

修改说明

  1. 多个发件人邮箱:

  2. 多个关键词:

    • 将keywords数组替换为你需要监控的关键词列表。

    • 例如:

      var keywords = [“重要”, “紧急”, “URGENT”, “提醒”];

  3. Gmail搜索查询:

    • 脚本会动态构建一个查询语句,支持多个发件人和多个关键词。
    • 查询逻辑:
      • 邮件必须来自specificSenders中的任意一个发件人。
      • 邮件主题或正文必须包含keywords中的任意一个关键词。
  4. 触发逻辑:

    • 只要邮件满足以下两个条件,就会被转发:
      • 发件人是指定邮箱之一。
      • 邮件主题或正文包含任意一个关键词。

示例

假设:

当收到以下邮件时:

  1. 发件人:[email protected],主题:本周会议安排,正文:请查看附件

    • 不会转发(因为没有关键词)。
  2. 发件人:[email protected],主题:系统维护通知,正文:重要:系统将于今晚维护

    • 会转发(因为包含关键词“重要”)。
  3. 发件人:[email protected],主题:紧急任务,正文:请尽快处理

    • 会转发(因为包含关键词“紧急”)。

设置触发器

  1. 在Google Apps Script中,点击左侧的“触发器”图标(时钟形状)。
  2. 点击“添加触发器”,设置以下内容:
    • 选择函数:forwardSpecificEmailToTelegram
    • 选择事件源:时间驱动
    • 选择触发器类型:分钟计时器,并设置间隔(如每1分钟或5分钟)。
  3. 保存触发器。

注意事项

  1. Gmail搜索限制:

    • Gmail的搜索查询长度有限制,如果发件人或关键词过多,可能会导致查询失败。建议控制列表长度。
  2. Telegram消息长度限制:

    • 如果邮件内容过长,Telegram可能会截断消息。可以在脚本中添加逻辑,只发送前4096个字符。
  3. 调试:

    • 如果脚本未按预期工作,可以在脚本中添加Logger.log()语句,查看中间结果。

通过以上修改,你可以实现监控多个发件人邮箱和多个关键词,并自动将符合条件的邮件转发到Telegram机器人!




第三次修改

要在现有脚本中增加将符合条件的邮件转发到QQ邮箱的功能,我们可以使用Gmail的GmailApp.sendEmail()方法。以下是更新后的脚本和说明:


更新后的脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
function forwardSpecificEmailToTelegramAndQQ() {
var botToken = "<YourBotToken>"; // 替换为你的Telegram Bot Token
var chatId = "<YourChatID>"; // 替换为你的Chat ID
var qqEmail = "<YourQQEmail>"; // 替换为你的QQ邮箱地址

// 设置多个发件人邮箱
var specificSenders = ["[email protected]", "[email protected]", "[email protected]"];

// 设置多个关键词(只要包含任意一个关键词就触发)
var keywords = ["重要", "紧急", "URGENT", "提醒"];

// 构建Gmail搜索查询
var senderQuery = specificSenders.map(function(sender) {
return "from:" + sender;
}).join(" OR ");

var keywordQuery = keywords.map(function(keyword) {
return "subject:" + keyword + " OR body:" + keyword;
}).join(" OR ");

var query = "is:unread (" + senderQuery + ") AND (" + keywordQuery + ")";

// 搜索符合条件的邮件
var threads = GmailApp.search(query);

for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();

for (var j = 0; j < messages.length; j++) {
var message = messages[j];
var subject = message.getSubject();
var body = message.getPlainBody();
var text = "主题: " + subject + "\n\n内容: " + body;

// 发送到Telegram
var telegramUrl = "https://api.telegram.org/bot" + botToken + "/sendMessage";
var telegramPayload = {
"chat_id": chatId,
"text": text
};

var telegramOptions = {
"method": "post",
"contentType": "application/json",
"payload": JSON.stringify(telegramPayload)
};

UrlFetchApp.fetch(telegramUrl, telegramOptions);

// 转发到QQ邮箱
GmailApp.sendEmail(qqEmail, "转发: " + subject, text);

message.markRead(); // 标记为已读
}
}
}

修改说明

  1. 新增QQ邮箱转发功能:

    • 使用GmailApp.sendEmail()方法将符合条件的邮件内容转发到指定的QQ邮箱。
    • 你需要将替换为你的QQ邮箱地址。
  2. 邮件内容:

    • 转发的邮件主题会加上前缀“转发: ”,以便在QQ邮箱中区分。
    • 邮件正文与发送到Telegram的内容一致。
  3. 逻辑顺序:

    • 脚本会先发送消息到Telegram,然后再转发邮件到QQ邮箱。

示例

假设:

当收到以下邮件时:

  1. 发件人:[email protected],主题:本周会议安排,正文:请查看附件

    • 不会转发(因为没有关键词)。
  2. 发件人:[email protected],主题:系统维护通知,正文:重要:系统将于今晚维护

    • 会转发(因为包含关键词“重要”),消息会发送到Telegram和QQ邮箱。
  3. 发件人:[email protected],主题:紧急任务,正文:请尽快处理

    • 会转发(因为包含关键词“紧急”),消息会发送到Telegram和QQ邮箱。

设置触发器

  1. 在Google Apps Script中,点击左侧的“触发器”图标(时钟形状)。
  2. 点击“添加触发器”,设置以下内容:
    • 选择函数:forwardSpecificEmailToTelegramAndQQ
    • 选择事件源:时间驱动
    • 选择触发器类型:分钟计时器,并设置间隔(如每1分钟或5分钟)。
  3. 保存触发器。

注意事项

  1. Gmail发送限制:

    • Gmail的每日发送邮件数量有限制(免费账户为100封/天)。如果邮件量较大,可能会触发限制。
  2. QQ邮箱设置:

    • 确保你的QQ邮箱能够正常接收外部邮件,并检查垃圾邮件箱以防误过滤。
  3. 调试:

    • 如果脚本未按预期工作,可以在脚本中添加Logger.log()语句,查看中间结果。

通过以上修改,你可以实现监控多个发件人邮箱和多个关键词,并自动将符合条件的邮件转发到Telegram机器人和QQ邮箱!

以上内容均来自deepseek