google-apps-script - 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 块。它在每条消息中都是相同的块。)
解决方案
的选项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 提供了一个很好的例子来说明如何做到这一点。
推荐阅读
- django - DjangoModelFactory 中的日期时间字段破坏了集成测试 (2.1)
- c# - 为什么在性能分析器中禁用内存使用部分?
- reactjs - 自定义样式到使用 react-json 模式表单创建的表单
- ios - WKInterfaceController 的 becomeCurrentPage 没有按预期工作
- vb.net - 将ip地址从静态更改为动态
- java - 根据实时纬度和语言 Firebase 更改标记位置,不带 (Mmap.clear) 或 if (marker != null)
- sql - 比较两列时,有没有办法将 Case 函数与 nvarchar 数据类型一起使用?
- google-app-maker - 使用变量计算减法的表达式的语法
- cordova - 如何减少 ionic 4 应用程序加载时间?
- vue.js - 更改路线和调整窗口大小后,Slick Carousel 的高度降至零