在Gmail中为电子邮件添加标签失败
Add label to emails in Gmail fails
我们正在尝试将Gmail中的标签添加到线程中。两个var都输出相同的"2014/10月/Sent"但只有SentLabel2有效,如果我们设置SentLabel threads[i].addLabel(SentLabel);
,它将失败。
我们需要它是SentLabel,因为我们已经做了这样一个自动月份的事情(它得到了当前月份,这样我们就不需要每个月手动进入脚本并更改变量):
var SentLabel = "2014/" + monthInWords[d.getMonth()] + "/Sent";
以下是它现在的样子:
function wtf2() {
var SentLabel = "2014/October/Sent";
var SentLabel2 = GmailApp.getUserLabelByName("2014/October/Sent");
var threads = GmailApp.getInboxThreads(0, 5);
for (var i = 0; i < threads.length; i++) {
var labels = threads[i].getLabels()[0];
threads[i].addLabel(SentLabel);
}
}
下面的语句之所以失败,是因为SentLabel是一个字符串变量,而不是gmailLabel变量。
threads[i].addLabel(SentLabel);
为了解决这个问题,你需要有条件地创建一个gmailLabel变量(我将称之为var标签),这取决于它是否已经存在。以下是您的操作方法:
var label = GmailApp.getUserLabelByName(SentLabel); //declares a variable called label and initializes it to be the value thats returned when searching GmailApp for any label that is named the same as the string you provided in your SentLabel variable
if (label) { //if gmail finds a matching label
Logger.log('Label exists.');
} else {
Logger.log('Label does not exist. Creating it.');
label = GmailApp.createLabel(SentLabel);
}
一旦运行,你就会有一个标签变量,如果你把它改成这个,你的语句就会起作用:
threads[i].addLabel(label);
您可以在此处阅读有关GmailLabel类的信息,https://developers.google.com/apps-script/reference/gmail/gmail-label#
相关文章:
- 高图表根据负/正值添加 yAxis 标签
- 在d3.js中添加文本标签以强制定向图链接
- 在每个条形图的中间添加文本标签&鼠标悬停事件
- 如何在Phonegap中进行AJAX调用时添加加载屏幕
- 不能在我们的CMS中使用PHP,但我想添加PHP标签
- 使用 javascript 在运行时将 id 添加到
- 标签
- 如何在加载前添加加载动画
- 如何为这些图像添加标题标签
- Symfony - 嵌入表单中的食谱“添加新标签”不起作用
- 如何在网页加载之前添加加载页面
- 使用 JS 或 Jquery 将复选框和无线电中的值添加到标签中
- 如果元素不包含“*”,则使用 jQuery 将“*”添加到标签中
- 选择2:使用代码动态添加新标签
- 当我使用 ckeditor 工具栏时,它会添加 html 标签,而不是在显示时添加所需的效果
- 将类添加到标签
- 添加 tr 标签会导致函数停止工作
- 仅在移动设备中添加 javascript 标签
- 如何添加<br/>在最后一个单词上加标签
- 动态添加
标点符号前加标签 - 为什么添加<脚本>标签在运行时不加载javascript文件?(react.js)