בקשת מידע | מחיקת מייל מייד (שלא יעבור קודם לאשפה)
-
@צדיק-תמים כתב בבקשת מידע | מחיקת מייל מייד (שלא יעבור קודם לאשפה):
@מתושלח-הבבלי כמו שכתבו אין כזו אופציה מובנית, אבל זה אפשרי עם גוגל סקריפט
כנס ל https://script.new, ותדביק את הקוד הבא:function deleteForever () { const threads = GmailApp.getTrashThreads(); const messages = threads.map(thread => thread.getMessages()).flat(); const messagesIds = messages.map(message => message.getId()); if (!threads.length) { return console.log('not emails to delete'); } Gmail.Users.Messages.batchDelete({ ids: messagesIds }, 'me'); console.log(`${messages.length} messages in ${threads.length} threads deleted forever`); }
אח"כ תבצע את 3 השלבים שמוסברים כאן
תלחץ בכפתור המסומן ותאשר את ההרשאות שתתבקש
ואז תוסיף בצד ימין (בסמל של השעון מעורר) טריגר זמן ותבחר כל דקה/כל 5 דקות
אם אתה נתקע בשלב מסוים תכתוב בדיוק במה.זה יכול לפתור את השאלה שראיתי פה כמה פעמים האם ניתן לחסום מייל מסוים לגמרי שהדברים שלו לא יגיעו רק לספאם או אשפה אלא יימחקו לגמרי לגמרי?
א"כ תוכל להסביר מה בדיוק עושים -
@שליטה-מרחוק כן, בשינויים קטנים בקוד:
const LABEL_NAME = 'TO_DELETE' function deleteForever () { const threads = GmailApp.search(`in:trash label: ${LABEL_NAME}`); const messages = threads.map(thread => thread.getMessages()).flat(); const messagesIds = messages.map(message => message.getId()); if (!threads.length) { return console.log('not emails to delete'); } Gmail.Users.Messages.batchDelete({ ids: messagesIds }, emailAccount); console.log(`${messages.length} messages in ${threads.length} threads deleted forever`); }
ובנוסף צריך להגדיר מסנן לכתובת אימייל שרוצים לחסום, ולהגדיר שיעביר לאשפה ויחיל תווית בשם
TO_DELETE
אופציה שניה ללא צורך במסנן (אבל כדי שהמייל לא יופיע בזמן שבין ריצות הסקריפט כן צריך מסנן...) ואת הכתובות לחסימה יש להכניס במשתנה EMAILS עם פסיק בין אחת לשניה, כמו בדוגמה:
const EMAILS = 'abc@gmail.com,b44@gmail.com'; function deleteForever() { const emailRegex = /\S+@\S+\.\S+/; const emails = EMAILS.split(','); if (emails.some((email) => !emailRegex.test(email))) throw new Error(`invalid email: ${emails.find((email) => !emailRegex.test(email))}`); if (!emails.length) throw new Error('no valid emails'); const threads = GmailApp.search(`from: { ${emails.join(' OR ')} } to: me`); const messages = threads.map((thread) => thread.getMessages()).flat(); const messagesIds = messages.map((message) => message.getId()); if (!threads.length) return console.log('not emails to delete'); Gmail.Users.Messages.batchDelete({ ids: messagesIds }, 'me'); console.log(`🗑️ ${messages.length} messages in ${threads.length} threads deleted forever`); }
אפשר לעשות משהו יותר מושקע עם ממשק והתקנה אוטומטית וכו' כמו בסקריפט של מייל לטלפון, מי שרוצה מוזמן.
-
@צדיק-תמים כתב בבקשת מידע | מחיקת מייל מייד (שלא יעבור קודם לאשפה):
@שליטה-מרחוק כן, בשינויים קטנים בקוד:
const LABEL_NAME = 'TO_DELETE' function deleteForever () { const threads = GmailApp.search(`in:trash label: ${LABEL_NAME}`); const messages = threads.map(thread => thread.getMessages()).flat(); const messagesIds = messages.map(message => message.getId()); if (!threads.length) { return console.log('not emails to delete'); } Gmail.Users.Messages.batchDelete({ ids: messagesIds }, emailAccount); console.log(`${messages.length} messages in ${threads.length} threads deleted forever`); }
ובנוסף צריך להגדיר מסנן לכתובת אימייל שרוצים לחסום, ולהגדיר שיעביר לאשפה ויחיל תווית בשם
TO_DELETE
אופציה שניה ללא צורך במסנן (אבל כדי שהמייל לא יופיע בזמן שבין ריצות הסקריפט כן צריך מסנן...) ואת הכתובות לחסימה יש להכניס במשתנה EMAILS עם פסיק בין אחת לשניה, כמו בדוגמה:
const EMAILS = 'abc@gmail.com,b44@gmail.com'; function deleteForever() { const emailRegex = /\S+@\S+\.\S+/; const emails = EMAILS.split(','); if (emails.some((email) => !emailRegex.test(email))) throw new Error(`invalid email: ${emails.find((email) => !emailRegex.test(email))}`); if (!emails.length) throw new Error('no valid emails'); const threads = GmailApp.search(`from: { ${emails.join(' OR ')} } to: me`); const messages = threads.map((thread) => thread.getMessages()).flat(); const messagesIds = messages.map((message) => message.getId()); if (!threads.length) return console.log('not emails to delete'); Gmail.Users.Messages.batchDelete({ ids: messagesIds }, 'me'); console.log(`🗑️ ${messages.length} messages in ${threads.length} threads deleted forever`); }
אפשר לעשות משהו יותר מושקע עם ממשק והתקנה אוטומטית וכו' כמו בסקריפט של מייל לטלפון, מי שרוצה מוזמן.
לא מבין בשביל שיהיה כמה שיותר מהר שימחוק בלי שיראו אותו כלל עד כמה שאפשר אז צריך לעשות את הסקריפט השני ולהגדיר מסנן היינו לעשות מסנן חדש של מחיקה. ובנוסף להוסיף אותו לסקריפט הנ"ל ולהגדיר כל 5 דק'?
-
@שליטה-מרחוק כן, ותגדיר כל דקה.
ואז המייל יגיע, יעבור ישירות לאשפה, ולאחר דקה בערך יימחק משם לצמיתות. -
@צדיק-תמים כתב בבקשת מידע | מחיקת מייל מייד (שלא יעבור קודם לאשפה):
@שליטה-מרחוק כן, ותגדיר כל דקה.
ואז המייל יגיע, יעבור ישירות לאשפה, ולאחר דקה בערך יימחק משם לצמיתות.אז מה בעצם ההבדל בין הראשון לשני אם בין כך אני עושה מסנן?
אולי כדאי לעשות מזה מדריך מסודר פה בפורום כי אני גם מחכה לזה נראה לי כמה שנים כבר -
@שליטה-מרחוק כתב בבקשת מידע | מחיקת מייל מייד (שלא יעבור קודם לאשפה):
אז מה בעצם ההבדל בין הראשון לשני אם בין כך אני עושה מסנן?
אין כל כך הבדל באמת.
ואתה מוזמן לפרסם מדריך מסודר על זה. -
@צדיק-תמים תודה רבה אבל הגדרתי את זה כמו המדריך וזה לא נמחק אחרי דקה
-
@מתושלח-הבבלי תעלה צילום מסך מפרטי הטריגר שיצרת וכן מלשונית "הפעלות":
בנוסף תנסה להריץ ידנית את הקוד בכפתור הזה ותבדוק אם אז זה כן מחק.
-
@צדיק-תמים הנה צילום מסך:
-
@מתושלח-הבבלי זה נראה שהדבקת את הקוד שהבאתי בנוסף לקוד שכבר היה בעורך ולא במקום
תמחק את כל הקוד ותדביק מחדש את מה שהבאתי, תריץ באופן חד פעמי את הקוד בכפתור "הפעלה" ותאשר את ההרשאות, ותערוך את הטריגר כך ש"הפונקציה להפעלה" יהיה "deleteForever" ולא "myFunction" -
@צדיק-תמים אתה עשר! זה דופק כמו שעון שוויצרי אין מילים!
-
@שליטה-מרחוק כתב בבקשת מידע | מחיקת מייל מייד (שלא יעבור קודם לאשפה):
זה יכול לפתור את השאלה שראיתי פה כמה פעמים האם ניתן לחסום מייל מסוים לגמרי שהדברים שלו לא יגיעו רק לספאם או אשפה אלא יימחקו לגמרי לגמרי?
א"כ תוכל להסביר מה בדיוק עושיםמקודם פרסמתי באתר שלי סקריפט ידידותי ביותר שעושה הכל בקליק אחד: https://madrichim.ovh/topic/440/חסימת-כתובות-אמיתית-במקום-העברה-לספאם-בלבד
-
-