בקשה ! עזרה בכתיבת קוד לג'ימיל להעברת הודעות מייל
-
@גבאי מעניין. אולי הבעיה עכשיו היא בצורה של החיפוש (עם המינוס על מאת המדפסת)
תנסה בכמה צורות של החיפוש. אולי תוריד את ה-AND
אולי תשים את זה באמצע, בסוף.
לא יודע -
@chv אמר בבקשה ! עזרה בכתיבת קוד לג'ימיל להעברת הודעות מייל:
AND
לפי מה שאני רואה בשורה 20 באמת לא שמת מינוס!!!!
אני צודק? -
@chv עכשיו אני רואה שהוא כן מוריד את התווית אבל אולי הוא מפעיל את הפרוצרודה גם על מה שבתווית בוצע?
יכול להיות שזה לא מסונן? ולכן הוא שולח שוב@גבאי הוא לא אמור להפעיל את הפרוצדורה על מה שבתווית מסוימת בכלל. לא מה שעם תווית בוצע ולא מה שבתווית working.
אני אומר לך שוב - שים לב כשאתה מעדכן את הסקריפט, שלא יהיו שאריות שמבלבלות אותו. ייתכן מאוד שזה מה שקורה.
פשוט או שתמחק את כל ההודעות הקודמות, או שתשים להם תווית מיוחדת שממנה הסקריפט יתעלם - מה שאתה חושב -
@chv אין לך מושג באיזה עוצמה אני מרגיש את ה"נהמא דכיסופא" מעולם לא הרגשתי כ"כ הכרת הטוב לבנ"א שכ"כ טורח ומתאמץ ומתמסר לשני בלי להכיר ובלי שהשני יוכל להכיר אותו/ להוקיר לו טובה
אני כל הזמן מסתובב בהרגשה...... איך אני עושה לההוא @chv טובה בחזרה? איך אני מודה לו? הקושי שלי הוא עצום! היום התחלתי להבין מה זה "נהמא דכיסופא"
בקיצור אין לי מילים...... ואם יש דרך להכיר לך טובה תעדכן אותי -
@גבאי הוא לא אמור להפעיל את הפרוצדורה על מה שבתווית מסוימת בכלל. לא מה שעם תווית בוצע ולא מה שבתווית working.
אני אומר לך שוב - שים לב כשאתה מעדכן את הסקריפט, שלא יהיו שאריות שמבלבלות אותו. ייתכן מאוד שזה מה שקורה.
פשוט או שתמחק את כל ההודעות הקודמות, או שתשים להם תווית מיוחדת שממנה הסקריפט יתעלם - מה שאתה חושב -
@גבאי הוא לא אמור להפעיל את הפרוצדורה על מה שבתווית מסוימת בכלל. לא מה שעם תווית בוצע ולא מה שבתווית working.
אני אומר לך שוב - שים לב כשאתה מעדכן את הסקריפט, שלא יהיו שאריות שמבלבלות אותו. ייתכן מאוד שזה מה שקורה.
פשוט או שתמחק את כל ההודעות הקודמות, או שתשים להם תווית מיוחדת שממנה הסקריפט יתעלם - מה שאתה חושב@chv מה שאני רואה כרגע זה שהמיל שלי שולח לעצמו גם כן את ההודעה של המדפסת ולא רק למייל שממנו נשלחה ההודעה המקורית וממילא זה חוזר על עצמו שוב שוב כי הוא מקבל הודעה בדואר נכנס ושולח אותה למדפסת וכן הלאה
אולי תצליח לחשבן אותו למה זה קורה?
אולי זה נובע מכך שהוא שולח גם איזה שהיא הודעה מדואר יוצא ולכן הוא מוגדר כמייל ששלח הודעה למדפסת. ? -
@גבאי הוא לא אמור להפעיל את הפרוצדורה על מה שבתווית מסוימת בכלל. לא מה שעם תווית בוצע ולא מה שבתווית working.
אני אומר לך שוב - שים לב כשאתה מעדכן את הסקריפט, שלא יהיו שאריות שמבלבלות אותו. ייתכן מאוד שזה מה שקורה.
פשוט או שתמחק את כל ההודעות הקודמות, או שתשים להם תווית מיוחדת שממנה הסקריפט יתעלם - מה שאתה חושב@chv הוספתי בקוד סינון שלא יפעל על הודעות שמגיעות מהמיל שלי
האם כך צריך לכתוב את זה?
שורה 6let forwardmessages = GmailApp.search(`-from:${printerResponsesEmail} AND -label:working AND -label:performed is:inbox from:(-12345676@gmail.com)`) // לשים לב לשמות התוויות
-
@chv הוספתי בקוד סינון שלא יפעל על הודעות שמגיעות מהמיל שלי
האם כך צריך לכתוב את זה?
שורה 6let forwardmessages = GmailApp.search(`-from:${printerResponsesEmail} AND -label:working AND -label:performed is:inbox from:(-12345676@gmail.com)`) // לשים לב לשמות התוויות
-
@chv הוספתי בקוד סינון שלא יפעל על הודעות שמגיעות מהמיל שלי
האם כך צריך לכתוב את זה?
שורה 6let forwardmessages = GmailApp.search(`-from:${printerResponsesEmail} AND -label:working AND -label:performed is:inbox from:(-12345676@gmail.com)`) // לשים לב לשמות התוויות
@גבאי אמר בבקשה ! עזרה בכתיבת קוד לג'ימיל להעברת הודעות מייל:
@chv הוספתי בקוד סינון שלא יפעל על הודעות שמגיעות מהמיל שלי
האם כך צריך לכתוב את זה?
שורה 6let forwardmessages = GmailApp.search(`-from:${printerResponsesEmail} AND -label:working AND -label:performed is:inbox from:(-12345676@gmail.com)`) // לשים לב לשמות התוויות
יכול להיות שהסוגריים באמצע מבלבלים אותו
צריך לעשות את זה בלי סוגריים כמו ה-from הראשון
לכאורהאני כבר מבולבל לגמרי מכל זה
לא מצליח לשחזר את זה אצלי - כל הבעיות שאתה כותב..
נראה במוצ"ש בלי נדר -
אוחחח... יכול להיות שזה חלק מהבאג - (או כולו) - שהפעולת חיפוש מחפשת גם הודעות בדואר יוצא.
תוסיף את זה לשורות החיפוש (שורה 6 ושורה 20. בתוך הגרשיים המוזרים)is:inbox
זה פשוט מחפש רק בדואר נכנס
יכול להיות שהסתדר?
ואגב שים לב שאתה חייב למחוק גם את המסננים שהיו לפני וגם את ההודעות עם תוויות - שלא יבלבלו אותו עכשיו
נ.ב. אני יסביר לך, אני תכלס מוגבל בצורת הטסטים שאני עושה (אם זה היה בעבודה או משהו הייתי חייב לעשות טסטים נורמלי אבל זה פורום אז..) אין לי כוח לקחת עכשיו תיבת מייל שלי ולהחיל את זה עליה בצורה מוחלטת אז עבדתי בצורה דומה, סיננתי ממיילים מסוימים וכו' יכול להיות שבגלל זה כל הפשלות
@chv אמר בבקשה ! עזרה בכתיבת קוד לג'ימיל להעברת הודעות מייל:
נ.ב. אני יסביר לך, אני תכלס מוגבל בצורת הטסטים שאני עושה (אם זה היה בעבודה או משהו הייתי חייב לעשות טסטים נורמלי אבל זה פורום אז..) אין לי כוח לקחת עכשיו תיבת מייל שלי ולהחיל את זה עליה בצורה מוחלטת אז עבדתי בצורה דומה, סיננתי ממיילים מסוימים וכו' יכול להיות שבגלל זה כל הפשלות
אולי תבדוק על אמת במייל שלי ישירות? נראה לי שזה יקל עליך מאוד! כי בסופו של דבר אני לא מאה אחוז מבין איך השלבים של הסקריפט ולכן אני לא יכול להניח את האצבע בדיוק על הנקודה
אני שולח לך את הפרטים במייל שבפרופיל שלך
בתודה על הכל!!!!!!!! -
@chv אמר בבקשה ! עזרה בכתיבת קוד לג'ימיל להעברת הודעות מייל:
נ.ב. אני יסביר לך, אני תכלס מוגבל בצורת הטסטים שאני עושה (אם זה היה בעבודה או משהו הייתי חייב לעשות טסטים נורמלי אבל זה פורום אז..) אין לי כוח לקחת עכשיו תיבת מייל שלי ולהחיל את זה עליה בצורה מוחלטת אז עבדתי בצורה דומה, סיננתי ממיילים מסוימים וכו' יכול להיות שבגלל זה כל הפשלות
אולי תבדוק על אמת במייל שלי ישירות? נראה לי שזה יקל עליך מאוד! כי בסופו של דבר אני לא מאה אחוז מבין איך השלבים של הסקריפט ולכן אני לא יכול להניח את האצבע בדיוק על הנקודה
אני שולח לך את הפרטים במייל שבפרופיל שלך
בתודה על הכל!!!!!!!! -
למתעניינים
ולמי שעוקב אחרי השרשור הארוך הזה..לאחר בדיקת הסקריפט בפועל על המייל. תיקנתי מה שהיה צריך לתקן,
הסקריפט הסופי: (עובד מעולה..)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, לדוגמא, במקום 'עובד')
ב' הסקריפט עבד גם על הודעות מאת המייל עצמו (מה שנמנע כרגע על ידי הוספת הגרעה של המייל 'שלנו' בחיפוש)
ג' התברר שהתשובות מהמדפסת מקובצות כשרשור אחד בג'ימייל. מה שהצריך לעבור בלולאה על פני כל ההודעות שבשרשור - ופשוט כל הודעה לבדוק אם לא נקראה - אזי שולחים מתוכנה כתשובה להודעה שמחכה לתגובה, ומסמנים כנקרא.שבוע טוב..