猿问

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

基本上我试图根据电子邮件正文的内容设置不同的自动回复。下面是我当前的代码...在这种情况下,我尝试对其进行设置,以便如果发送带有正文“测试”的电子邮件,它将自动回复“这是我的测试”。但如果是其他内容,它会说“抱歉,您的关键字未被识别”。最好希望将来添加多个关键字...


然而,无论我发送什么,它都只是自动回复“这是我的测试”......


关于如何解决这个问题有什么想法吗?


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();

}

}

}

}

}


ibeautiful
浏览 138回答 1
1回答

富国沪深

说明/问题:您的代码有一个明显的问题,并且需要根据您的评论进行一项额外的修改:替换if(msg = "test")为if(msg == "test")否则第一个if块语句将始终被执行。根据您的评论,msg这不仅仅是一个单词,而是一段文字。并且您想检查是否test位于两个单词之间。假设这些单词是thisand ,that您可以使用以下正则表达式来查看是否test在this和之间that:const regex = RegExp(/(?<=this.*?)test(?=.*?that)/); regex.test(msg) // this returns true if test is between this and thatRegExp.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 wordsvar 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();}}}}}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答