בקשת מידע | כלי לאיסוף כל כתובות המייל מהמייל שלי
-
@kasnik כתב בבקשת מידע | כלי לאיסוף כל כתובות המייל מהמייל שלי:
ועכשיו ברצינות, נהיה כאן בפורום לאחרונה תופעה שכל מי שכתב כמה דקות בAI כבר מבקש כסף..
יש משפט שאומר "אתה לא משלם לי על הזמן עבודה אלא משלם לי על השנים שלמדתי את הנושא" אנשים שטובים בAI בדרך כלל ישבו על זה הרבה זמן וזה נורמלי לפתח משהו ולדרוש על זה תשלום
@a.y.f. כתב בבקשת מידע | כלי לאיסוף כל כתובות המייל מהמייל שלי:
יש משפט שאומר "אתה לא משלם לי על הזמן עבודה אלא משלם לי על השנים שלמדתי את הנושא"
קרדיט הפרופיל של שמואל.
@a.y.f. כתב בבקשת מידע | כלי לאיסוף כל כתובות המייל מהמייל שלי:
אנשים שטובים בAI בדרך כלל ישבו על זה הרבה זמן וזה נורמלי לפתח משהו ולדרוש על זה תשלום
ואני מספר לך שאני פה בפרום עוד לפני עידן הAI
ואז עזרו בחינם...אני לא לוקח כסף על עזרה בפורום, אלא אם כן זה דרש הגעה לבית הלקוח / השקעה אישית בשליטה מרחוק (בד"כ אני גם לא לוקח על שליטה מרחוק...)
ומה תאמר על המדריך שלי על אופיס למשל?
שזה גם היה חתיכת עבודה?
אני יקח תשלום סימלי על הגישה אליו?אני עוד עזרתי כאן בפורום לא מAI אלא מדברים שישבתי ולמדתי, אז שחרר את ה'ללמוד AI'
ושוב, אני לא אמרתי שלבקש תשלום זה מבוזה,
אני אמרתי שזה מבוזה לבקש תשלום על דברים של שניות,
כן אם אתה לא יודע, סקריפס לאיסוף מיילים זה דבר של שניות, ואתה יכול למצוא אותו בכל פינה ברשת, -
@שלמה-רביב זה כבר לא קשור זה כבר מישהו שלקח את כל המיילים מהספאמרים הקודמים
-
@שלמה-רביב זה כבר לא קשור זה כבר מישהו שלקח את כל המיילים מהספאמרים הקודמים
-
עוד נזק, לא יודע למה, אבל ככל הנראה המייל שלי מזוהה כספאם או משהו כזה בגלל הדבר הזה, הוא לא נותן לי לשלוח מיילים לאנשי קשר חדשים. על הכל אני מיד מקבל תגובת Message rejected.
-
@עידו300 כתב בבקשת מידע | כלי לאיסוף כל כתובות המייל מהמייל שלי:
עוד נזק, לא יודע למה, אבל ככל הנראה המייל שלי מזוהה כספאם או משהו כזה בגלל הדבר הזה
כל מי שמגיב בדבר כזה אחת דינו להיכנס לספאם
-
@פלמנמוני נו באמת, הרגעתי את העסק שם, כתבתי שבמקום להגיב לכולם שיגיבו רק לו, ושבמקום להתעצבן יסירו את עצמם וזהו...
אין לי מושג מה הסיפור של זה, אני מקווה מאוד שזה יעבור ומהר. הענין הוא שזה לא מגיע לספאם, זה פשוט לא נשלח... -
מצורף גרסה משופרת, ציין את שם התווית בפונקציה האחרונה exportFromLabel והפעל אותה, אחרת פשוט תפעיל את exportFromInbox
function exportEmailSendersToSheet(labelName = null) { const ss = SpreadsheetApp.getActiveSpreadsheet(); let sheet = ss.getSheetByName("שולחי מיילים"); if (!sheet) { sheet = ss.insertSheet("שולחי מיילים"); } else { sheet.clearContents(); } sheet.getRange(1, 1, 1, 3).setValues([["שם", "כתובת מייל", "מספר הודעות"]]); sheet.getRange(1, 1, 1, 3).setFontWeight("bold"); const sendersMap = {}; let start = 0; const batchSize = 500; let label = null; if (labelName) { label = GmailApp.getUserLabelByName(labelName); if (!label) { SpreadsheetApp.getUi().alert(`התווית "${labelName}" לא נמצאה ב-Gmail.`); return; } } while (true) { const threads = label ? label.getThreads(start, batchSize) : GmailApp.getInboxThreads(start, batchSize); if (threads.length === 0) break; for (const thread of threads) { const messages = thread.getMessages(); for (const message of messages) { const from = message.getFrom(); const match = from.match(/^(.*?)\s*<([^>]+)>$/) || from.match(/^([^@]+@[^\s]+)$/); let name, email; if (match && match[2]) { name = match[1].trim().replace(/^"|"$/g, ''); email = match[2].trim().toLowerCase(); } else { name = from.trim(); email = from.trim().toLowerCase(); } if (email) { if (sendersMap[email]) { sendersMap[email].count++; } else { sendersMap[email] = { name: name, count: 1 }; } } } } start += batchSize; Logger.log(`עיבוד ${start} שיחות...`); } const rows = Object.entries(sendersMap).map(([email, data]) => [ data.name, email, data.count ]); rows.sort((a, b) => b[2] - a[2]); if (rows.length > 0) { sheet.getRange(2, 1, rows.length, 3).setValues(rows); } sheet.autoResizeColumns(1, 3); const source = labelName ? `תווית "${labelName}"` : "תיבת דואר נכנס"; Logger.log(`✅ הושלם! נמצאו ${rows.length} שולחים ייחודיים מתוך ${source}.`); } function exportFromInbox() { exportEmailSendersToSheet(); } function exportFromLabel() { exportEmailSendersToSheet("שם-התווית-כאן"); }ולהסיר לע"ז - זה לא נכתב עם AI, זה סקריפט שכתבתי לפני המון שנים..
-
@אביי א. ייש"כ גדול מאוד!!!!!!!
ב. זה מחזיר לי את השגיאה הזו

זה אמור להיות קשור לנטפרי או שכתבתי שם משהו לא תקין?
תודה רבה -
@אביי א. ייש"כ גדול מאוד!!!!!!!
ב. זה מחזיר לי את השגיאה הזו

זה אמור להיות קשור לנטפרי או שכתבתי שם משהו לא תקין?
תודה רבה -
הנה קוד Google Apps Script שעושה את זה:
function exportEmailSendersToSheet() { const ss = SpreadsheetApp.getActiveSpreadsheet(); let sheet = ss.getSheetByName("שולחי מיילים"); if (!sheet) { sheet = ss.insertSheet("שולחי מיילים"); } else { sheet.clearContents(); } sheet.getRange(1, 1, 1, 3).setValues([["שם", "כתובת מייל", "מספר הודעות"]]); sheet.getRange(1, 1, 1, 3).setFontWeight("bold"); const sendersMap = {}; let start = 0; const batchSize = 500; while (true) { const threads = GmailApp.getInboxThreads(start, batchSize); if (threads.length === 0) break; for (const thread of threads) { const messages = thread.getMessages(); for (const message of messages) { const from = message.getFrom(); const match = from.match(/^(.*?)\s*<([^>]+)>$/) || from.match(/^([^@]+@[^\s]+)$/); let name, email; if (match && match[2]) { name = match[1].trim().replace(/^"|"$/g, ''); email = match[2].trim().toLowerCase(); } else { name = from.trim(); email = from.trim().toLowerCase(); } if (email) { if (sendersMap[email]) { sendersMap[email].count++; } else { sendersMap[email] = { name: name, count: 1 }; } } } } start += batchSize; Logger.log(`עיבוד ${start} שיחות...`); } const rows = Object.entries(sendersMap).map(([email, data]) => [ data.name, email, data.count ]); rows.sort((a, b) => b[2] - a[2]); if (rows.length > 0) { sheet.getRange(2, 1, rows.length, 3).setValues(rows); } sheet.autoResizeColumns(1, 3); Logger.log(`✅ הושלם! נמצאו ${rows.length} שולחים ייחודיים.`); Logger.log(`סה"כ שולחים ייחודיים: ${rows.length}`); }איך להשתמש:
צור קובץ Google Sheets חדש,
עבור לתפריט תוספים > Apps Script
מחק את הקוד הקיים והדבק את הקוד לעיל
לחץ על "שמור" ואז על הפעלה (בנטפרי - אם יש שגיאה יש לשלוח פניה עם הקלטה)
אשר את ההרשאות לגישה ל-Gmail
תמתין לסיום הריצה, וזהו, תחזור לכרטיסיה של השיטס, ותראה את הרשימה. -
@אביי כתב בבקשת מידע | כלי לאיסוף כל כתובות המייל מהמייל שלי:
let sheet = ss.getSheetByName("שולחי מיילים");
אולי לא קראת לטבלה בשם הנכון?
-
@עידו300 כתב בבקשת מידע | כלי לאיסוף כל כתובות המייל מהמייל שלי:
אולי לא קראת לטבלה בשם הנכון?
זה לא אמור להיות בעיה, כיש ורה אחר כך הקוד יוצר את הגיליון אם הוא לא קיים
@ע-ה-דכו-ע נכון לכאורה הבעיה היא בשורה שלפני זה, שבכלל לא משויך לשיטס מסוים.
-
@ע-ה-דכו-ע פתחתי סקריפט חדש
טעיתי? -
הנה קוד Google Apps Script שעושה את זה:
function exportEmailSendersToSheet() { const ss = SpreadsheetApp.getActiveSpreadsheet(); let sheet = ss.getSheetByName("שולחי מיילים"); if (!sheet) { sheet = ss.insertSheet("שולחי מיילים"); } else { sheet.clearContents(); } sheet.getRange(1, 1, 1, 3).setValues([["שם", "כתובת מייל", "מספר הודעות"]]); sheet.getRange(1, 1, 1, 3).setFontWeight("bold"); const sendersMap = {}; let start = 0; const batchSize = 500; while (true) { const threads = GmailApp.getInboxThreads(start, batchSize); if (threads.length === 0) break; for (const thread of threads) { const messages = thread.getMessages(); for (const message of messages) { const from = message.getFrom(); const match = from.match(/^(.*?)\s*<([^>]+)>$/) || from.match(/^([^@]+@[^\s]+)$/); let name, email; if (match && match[2]) { name = match[1].trim().replace(/^"|"$/g, ''); email = match[2].trim().toLowerCase(); } else { name = from.trim(); email = from.trim().toLowerCase(); } if (email) { if (sendersMap[email]) { sendersMap[email].count++; } else { sendersMap[email] = { name: name, count: 1 }; } } } } start += batchSize; Logger.log(`עיבוד ${start} שיחות...`); } const rows = Object.entries(sendersMap).map(([email, data]) => [ data.name, email, data.count ]); rows.sort((a, b) => b[2] - a[2]); if (rows.length > 0) { sheet.getRange(2, 1, rows.length, 3).setValues(rows); } sheet.autoResizeColumns(1, 3); Logger.log(`✅ הושלם! נמצאו ${rows.length} שולחים ייחודיים.`); Logger.log(`סה"כ שולחים ייחודיים: ${rows.length}`); }איך להשתמש:
צור קובץ Google Sheets חדש,
עבור לתפריט תוספים > Apps Script
מחק את הקוד הקיים והדבק את הקוד לעיל
לחץ על "שמור" ואז על הפעלה (בנטפרי - אם יש שגיאה יש לשלוח פניה עם הקלטה)
אשר את ההרשאות לגישה ל-Gmail
תמתין לסיום הריצה, וזהו, תחזור לכרטיסיה של השיטס, ותראה את הרשימה.@DANIEL-4 כתב בבקשת מידע | כלי לאיסוף כל כתובות המייל מהמייל שלי:
@ע-ה-דכו-ע פתחתי סקריפט חדש
טעיתי?@אביי כתב בבקשת מידע | כלי לאיסוף כל כתובות המייל מהמייל שלי:
צור קובץ Google Sheets חדש,
עבור לתפריט תוספים > Apps Script -
@DANIEL-4 כתב בבקשת מידע | כלי לאיסוף כל כתובות המייל מהמייל שלי:
@ע-ה-דכו-ע פתחתי סקריפט חדש
טעיתי?@אביי כתב בבקשת מידע | כלי לאיסוף כל כתובות המייל מהמייל שלי:
צור קובץ Google Sheets חדש,
עבור לתפריט תוספים > Apps Script@ע-ה-דכו-ע לא הייתי מרוכז...
תו"כ עברתי ע"ז אני באמצע בע"ה.
ייש"כ! -
מענין לענין,
יש לי כתובת מייל גמח, ששולחת מידע לאנשים אוטומטית...
כיצד אני יכול לעשות שזה ישלח להם אוטומטית הזמנה לקבוצת העדכונים??
-
מענין לענין,
יש לי כתובת מייל גמח, ששולחת מידע לאנשים אוטומטית...
כיצד אני יכול לעשות שזה ישלח להם אוטומטית הזמנה לקבוצת העדכונים??
@חד-בדרא-השני באותה צורה שבה אתה שולח להם מידע אוטומטית, תשלח להם גם הזמנה להצטרף לקבוצה, מה הבעיה?
אתה מתכוין לצרף אותם אוטומטית לקבוצה? זה כבר מסובך ואפשרי רק בחשבון גוגל עסקי -
@חד-בדרא-השני באותה צורה שבה אתה שולח להם מידע אוטומטית, תשלח להם גם הזמנה להצטרף לקבוצה, מה הבעיה?
אתה מתכוין לצרף אותם אוטומטית לקבוצה? זה כבר מסובך ואפשרי רק בחשבון גוגל עסקי@לב-טוב כי זה לשנות איזה 20 תבניות...
כתבתי גם את הקישור בהודעת חופשה אבל לפעימם בגלל המענה האוטומטית זה לא שולח גם אותה
