@DANIEL-4
מצורף גרסה משופרת, ציין את שם התווית בפונקציה האחרונה 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, זה סקריפט שכתבתי לפני המון שנים..