为了账号安全,请及时绑定邮箱和手机立即绑定

Google Apps 脚本根据电子邮件正文中的关键字发送不同的自动回复

Google Apps 脚本根据电子邮件正文中的关键字发送不同的自动回复

ibeautiful 2023-09-14 17:51:34
基本上我试图根据电子邮件正文的内容设置不同的自动回复。下面是我当前的代码...在这种情况下,我尝试对其进行设置,以便如果发送带有正文“测试”的电子邮件,它将自动回复“这是我的测试”。但如果是其他内容,它会说“抱歉,您的关键字未被识别”。最好希望将来添加多个关键字...然而,无论我发送什么,它都只是自动回复“这是我的测试”......关于如何解决这个问题有什么想法吗?function autoReplier() {var labelObj = GmailApp.getUserLabelByName('autoreply');var gmailThreads;var messages;var sender;for (var gg = 0; gg < labelObj.getUnreadCount(); gg++) {gmailThreads = labelObj.getThreads()[gg];messages = gmailThreads.getMessages();for (var ii = 0; ii < messages.length; ii++)   {if (messages[ii].isUnread()){msg = messages[ii].getPlainBody();    if (msg = "test") {        sender = messages[ii].getFrom();MailApp.sendEmail(sender, "Auto Reply", "This is my test");                                                                             messages[ii].markRead();        messages[ii].moveToTrash();    } else {        sender = messages[ii].getFrom();MailApp.sendEmail(sender, "Auto Reply", "Sorry, your keyword was not recognized");                                                                                 messages[ii].markRead();        messages[ii].moveToTrash();}}}}}
查看完整描述

1 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

说明/问题:

您的代码有一个明显的问题,并且需要根据您的评论进行一项额外的修改:

  • 替换if(msg = "test")if(msg == "test")否则第一个if块语句将始终被执行。

  • 根据您的评论,msg这不仅仅是一个单词,而是一段文字。并且您想检查是否test位于两个单词之间。假设这些单词是thisand ,that您可以使用以下正则表达式来查看是否testthis和之间that

    const regex = RegExp(/(?<=this.*?)test(?=.*?that)/);
    regex.test(msg) // this returns true if test is between this and that

RegExp.prototype.test ()方法允许您验证正则表达式,并true在您的情况下获取正则表达式和指定字符串之间是否存在匹配msg

解决方案:

function autoReplier() 

{var labelObj = GmailApp.getUserLabelByName('autoreply');

var gmailThreads;

var messages;

const regex = RegExp(/(?<=this.*?)test(?=.*?that)/); //modify this and that if you want to use other words

var sender;

for (var gg = 0; gg < labelObj.getUnreadCount(); gg++) {

gmailThreads = labelObj.getThreads()[gg];

messages = gmailThreads.getMessages();

for (var ii = 0; ii < messages.length; ii++) 

  {if (messages[ii].isUnread()){msg = messages[ii].getPlainBody();

    if (regex.test(msg)) {

        sender = messages[ii].getFrom();

        MailApp.sendEmail(sender, "Auto Reply", "This is my test");                                                                     

        messages[ii].markRead();

        messages[ii].moveToTrash();

    } else {

        sender = messages[ii].getFrom();

        MailApp.sendEmail(sender, "Auto Reply", "Sorry, your keyword was not recognized");                                                                         

        messages[ii].markRead();

        messages[ii].moveToTrash();

}}}}

}


查看完整回答
反对 回复 2023-09-14
  • 1 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信