#javascript #google-apps-script
#javascript #google-apps-script
Вопрос:
Привет, я создаю скрипт, который будет искать почту в Gmail, и если затем присвоить ярлык искомым письмам, но я не уверен, как присвоить ярлык сообщениям, я могу создать ярлык, но не могу его присвоить.
Еще одна вещь, которую я хочу знать, правильно ли я использую функцию сна утилит at или нет.
function addNaggingLabels() {
var label = _getNaggingLabel();
var start = parseInt(UserProperties.getProperty("start"));
var sheet = SpreadsheetApp.getActiveSheet();
var ss = SpreadsheetApp.getActiveSpreadsheet()
for (;;) {
// Find all Gmail messages that have attachments
var threads = GmailApp.search('in:inbox has:attachment larger:15M');
if (threads.length == 0) {
ss.toast("Processed " start " messages.", "Scanning Done", -1);
return;
}
for (var i=0; i<threads.length; i ) {
var messages = threads[i].getMessages();
UserProperties.setProperty("start", start);
for (var m=0; m<messages.length; m ) {
var size = getMessageSize(messages[m].getAttachments());
if (size>15) {
Logger.log("label: " GmailApp.createLabel("FOO"));
}
}
}
}
// Wait for a second to avoid hitting the system limit
Utilities.sleep(1000);
return Math.round(size*100/(1024*1024))/100;
}
function getMessageSize(att) {
var size = 0;
for (var i=0; i<att.length; i ) {
//size = att[i].getBytes().length;
size = att[i].getSize(); // Better and faster than getBytes()
}
}
Ответ №1:
Вы можете использовать метод addLabel, чтобы применить метку к потоку, а не к сообщению. Кроме того, поскольку вы используете более крупный оператор поиска, нет необходимости перепроверять размер вложения позже.
var threads = GmailApp.search('in:inbox has:attachment larger:15M');
var label = GmailApp.getUserLabelByName("label name goes here");
for (var t in threads) {
threads[t].addLabel(label);
}
Комментарии:
1. Привет, Амит, мне удалось создать метку, но я не могу назначить их письмам размером более 15 м, например:- if (size> 15) { ‘Что я сюда поместил’ }
2. Смотрите мой ответ. Вам нужно вызвать метод addLabel в потоке Gmail, а не в сообщении.
3. @AmitAgarwal Есть ли возможность добавить или получить метку из сообщения, а не из потока?