首页 > 解决方案 > Gmail 应用程序脚本在转发前编辑正文

问题描述

我正在使用 Gmail 应用程序脚本转发带有特定标签的电子邮件……但我想在转发之前编辑邮件正文。

function fwdFB(){


var label = GmailApp.getUserLabelByName('fb');
  var threads = label.getThreads();
  for(var m in threads){
    var messages = threads[m].getMessages();
    for(var y in messages){ messages[y].forward('w@yahoo.com',{from:'webmaster@gmail.com'}) }
    threads[m].moveToTrash();
  }
}

我不清楚如何插入getBody()编辑消息的方法。(具体来说,我想从邮件中删除某个 HTML 块。它在每条消息中都是相同的块。)

标签: google-apps-script

解决方案


的选项forward(recipient, options)不提供端点来修改消息正文。您必须手动执行此操作,方法是在根据需要修改正文后发送消息。

样本:

function fwdFB(){
var label = GmailApp.getUserLabelByName('fb');
  var threads = label.getThreads();
  for(var m in threads){
    var messages = threads[m].getMessages();
    for(var y in messages){ 
     var oldBody = messages[y].getBody();
     var newBody = oldBody.substring(1, 10)+" PS: This is a modification."
     var oldSubject = messages[y].getSubject();
      var newSubject = "Fwd: "+ oldSubject; 
      GmailApp.sendEmail('w@yahoo.com', newSubject, newBody, {from:'webmaster@gmail.com'})
    }
    threads[m].moveToTrash();
  }
}

更新

如果保留消息历史记录对您很重要,则需要执行附加步骤来线程化消息。@tehhowch 提供了一个很好的例子来说明如何做到这一点。


推荐阅读