בירור | עוד בנושא שליחת מייל אוטמטי עם קובץ מצורף - מה הבעיה בקוד שלי
-
אני רוצה שאם השולח כתוב למשל א בנושא אז יקבל קובץ א. אם כתב ב יקבל קובץ ב
עשיתי מסנן שאם כתוב א יגיע לתווית א ואם ב יגיע לתווית ב
בקוד הזה לכאו' מוגדר הכל כדין. אבל בפועל רק הב' עובד כלומר אם כותבים ב אכן מקבלים את הקובץ אבל אם כותבים א לא מקבלים כלום. ברגע שמחקתי את כל הקטע השני עם הב' ושמרתי אז הא' כן התחיל לעבוד.
מקוה שמובן מה אני רוצה לעשות.
איפה הבעיהvar file1 = DriveApp.getFileById('1Sj4SkdvF9vDd0aV7y-BwE2rcffchxNwfu').getAs('application/pdf') function reply() { var label = GmailApp.getUserLabelByName('א'); var messages = label.getThreads(); for(var i=0;i<messages.length;i++){ messages[i].reply('קובץ 1',{ attachments:[file1] }); messages[i].removeLabel(label); } } var file1 = DriveApp.getFileById('1gXrIBI4omZzZ32YrvrWPliYkqinwvB2p5').getAs('application/pdf') function reply() { var label = GmailApp.getUserLabelByName('ב'); var messages = label.getThreads(); for(var i=0;i<messages.length;i++){ messages[i].reply('קובץ 2',{ attachments:[file1] }); messages[i].removeLabel(label); } }
-
פוסט זה נמחק!
-
@שעטנ-ז-ג-ץ אמר בבירור | עוד בנושא שליחת מייל אוטמטי עם קובץ מצורף - מה הבעיה בקוד שלי:
אני רוצה שאם השולח כתוב למשל א בנושא אז יקבל קובץ א. אם כתב ב יקבל קובץ ב
עשיתי מסנן שאם כתוב א יגיע לתווית א ואם ב יגיע לתווית ב
בקוד הזה לכאו' מוגדר הכל כדין. אבל בפועל רק הב' עובד כלומר אם כותבים ב אכן מקבלים את הקובץ אבל אם כותבים א לא מקבלים כלום. ברגע שמחקתי את כל הקטע השני עם הב' ושמרתי אז הא' כן התחיל לעבוד.
מקוה שמובן מה אני רוצה לעשות.
איפה הבעיהvar file1 = DriveApp.getFileById('1Sj4SkdvF9vDd0aV7y-BwE2rcffchxNwfu').getAs('application/pdf') function reply() { var label = GmailApp.getUserLabelByName('א'); var messages = label.getThreads(); for(var i=0;i<messages.length;i++){ messages[i].reply('קובץ 1',{ attachments:[file1] }); messages[i].removeLabel(label); } } var file1 = DriveApp.getFileById('1gXrIBI4omZzZ32YrvrWPliYkqinwvB2p5').getAs('application/pdf') function reply() { var label = GmailApp.getUserLabelByName('ב'); var messages = label.getThreads(); for(var i=0;i<messages.length;i++){ messages[i].reply('קובץ 2',{ attachments:[file1] }); messages[i].removeLabel(label); } }
אתה לא רואה איפה הבעיה? הבעיה לאורך כל הקוד, אתה מצהיר על שתי פונקציות שונות, ושני משתנים שונים - עם אותו שם!
איך אתה חושב שהמנוע שמריץ את הקוד הזה אמור להתייחס לזה?
במקרה שלנו אתה מצהיר על המשנה ב-var
אז כל הצהרה חוזרת פשוט דורסת את ההצהרה הקודמת
וכנ"ל גם בהצהרה קלאסית על פונקציה (function
)בקיצור שנה את הקוד - למשהו כזה בערך -
var file1 = DriveApp.getFileById('1Sj4SkdvF9vDd0aV7y-BwE2rcffchxNwfu').getAs('application/pdf') var file2 = DriveApp.getFileById('1gXrIBI4omZzZ32YrvrWPliYkqinwvB2p5').getAs('application/pdf') function reply() { var label_a = GmailApp.getUserLabelByName('א'); var label_b = GmailApp.getUserLabelByName('ב'); var a_messages = label_a.getThreads(); var b_messages = label_b.getThreads(); for(var i=0;i<a_messages.length;i++){ a_messages[i].reply('קובץ 1',{ attachments:[file1] }); a_messages[i].removeLabel(label); } for(var i=0;i<b_messages.length;i++){ b_messages[i].reply('קובץ 2',{ attachments:[file2] }); b_messages[i].removeLabel(label); } }
-
@chv אמר בבירור | עוד בנושא שליחת מייל אוטמטי עם קובץ מצורף - מה הבעיה בקוד שלי:
var file1 = DriveApp.getFileById('1Sj4SkdvF9vDd0aV7y-BwE2rcffchxNwfu').getAs('application/pdf') var file2 = DriveApp.getFileById('1gXrIBI4omZzZ32YrvrWPliYkqinwvB2p5').getAs('application/pdf') function reply() { var label_a = GmailApp.getUserLabelByName('א'); var label_b = GmailApp.getUserLabelByName('ב'); var a_messages = label_a.getThreads(); var b_messages = label_b.getThreads(); for(var i=0;i<a_messages.length;i++){ a_messages[i].reply('קובץ 1',{ attachments:[file1] }); a_messages[i].removeLabel(label); } for(var i=0;i<b_messages.length;i++){ b_messages[i].reply('קובץ 2',{ attachments:[file2] }); b_messages[i].removeLabel(label); } }
לא יודע משהו מוזר. מאז שעשיתי את הקוד שכתבת בדיוק. אז קובץ א עובד טוב אבל שכותבים ב והוא מועבר לתוית ב, אז במקום לשלוח למבקש את הקובץ הוא שולח לעצמו שוב ושוב (כי הרי אם מקבל מייל הוא חייב לשלוח לו את הקובץ) וככה הוא שולח לעצמו שוב ושוב ללא הפסקה. עכשיו אני רואה שגם קובץ א אמנם נשלח קובץ למבקש אבל המייל גם שולח את הקובץ לעצמו ללא הפסקה. עזרו...
-
@chv ?
-
@שעטנ-ז-ג-ץ טעות שלי בקוד.
בשלב של הסרת התווית מההודעה שטופלה, אין רפרנס לאחד משני המשתנים שמכילים את התוויות (א' או ב')
הנה קוד מתוקן:var file1 = DriveApp.getFileById('1Sj4SkdvF9vDd0aV7y-BwE2rcffchxNwfu').getAs('application/pdf') var file2 = DriveApp.getFileById('1gXrIBI4omZzZ32YrvrWPliYkqinwvB2p5').getAs('application/pdf') function reply() { var label_a = GmailApp.getUserLabelByName('א'); var label_b = GmailApp.getUserLabelByName('ב'); var a_messages = label_a.getThreads(); var b_messages = label_b.getThreads(); for(var i=0;i<a_messages.length;i++){ a_messages[i].reply('קובץ 1',{ attachments:[file1] }); a_messages[i].removeLabel(label_a); } for(var i=0;i<b_messages.length;i++){ b_messages[i].reply('קובץ 2',{ attachments:[file2] }); b_messages[i].removeLabel(label_b); } }