למתעניינים
ולמי שעוקב אחרי השרשור הארוך הזה..
לאחר בדיקת הסקריפט בפועל על המייל. תיקנתי מה שהיה צריך לתקן,
הסקריפט הסופי: (עובד מעולה..)
function redirect() {
let mymail = 'somemail@gmail.com' // מייל שלנו. נצרך בשביל הסינון בשורה 7
let printerEmail = 'somemail@hpeprint.com' // מייל של המדפסת
let printerResponsesEmail = 'donotreply@hpeprint.com'// מייל תשובות מהמדפסת
let workinglabel = GmailApp.getUserLabelByName('עובד') // שם של תווית - עובד על זה
let donelabel = GmailApp.getUserLabelByName('בוצע') // שם של תווית - בוצע
let forwardmessages = GmailApp.search(`-from:${printerResponsesEmail} -from:${mymail} -label:עובד -label:בוצע is:inbox`) // לשים לב לשמות התוויות
if (forwardmessages.length > 0) {
for (let formessage of forwardmessages) {
let message = formessage.getMessages()[0]
let subject = message.getSubject()
let body = message.getBody()
let attachments = message.getAttachments() // בשורה הבאה - שולח מייל למדפסת מתוכן ההודעה שהתקבלה
MailApp.sendEmail(printerEmail, subject, '', {
htmlBody: body,
attachments: attachments
})
formessage.addLabel(workinglabel) // מוסיף תווית 'עובד על זה' להודעה
}
}
let printermessages = GmailApp.search(`from:${printerResponsesEmail} is:unread is:inbox`)
if (printermessages.length > 0) {
for (let printmessage of printermessages) {
let messages = printmessage.getMessages()
for (let message of messages) {
if (message.isUnread()) {
let body = message.getBody()
let attachments = message.getAttachments()
let lastworkingthread = workinglabel.getThreads()[0]
lastworkingthread.reply('', {
htmlBody: body,
attachments: attachments
})
lastworkingthread.removeLabel(workinglabel) // מוחק תווית 'עובד' מהודעה שקיבלה תשובה
lastworkingthread.addLabel(donelabel) // מקצה תווית 'בוצע' להודעה שקיבלה תשובה
message.markRead() // סימון הודעת המדפסת (לא מסמן את כל השרשור, אלא רק הודעה ספציפית מתוכו, שטופלה) כנקרא
}
}
}
}
}
ואני יסביר -
א' היה בעיה שנבעה פשוט מזה ששמות התוויות בשורה 7 (בזמנו 6) שמבצעת חיפוש של הודעות בג'ימייל, לא היו מדויקות (היה כתוב working, לדוגמא, במקום 'עובד')
ב' הסקריפט עבד גם על הודעות מאת המייל עצמו (מה שנמנע כרגע על ידי הוספת הגרעה של המייל 'שלנו' בחיפוש)
ג' התברר שהתשובות מהמדפסת מקובצות כשרשור אחד בג'ימייל. מה שהצריך לעבור בלולאה על פני כל ההודעות שבשרשור - ופשוט כל הודעה לבדוק אם לא נקראה - אזי שולחים מתוכנה כתשובה להודעה שמחכה לתגובה, ומסמנים כנקרא.
שבוע טוב..