בירור | איך להוציא קובץ עם כל מי ששלח אלי / קיבל ממני מייל
-
@אביי זה עושה לי שגיאה כזו

זה לאחר שעשיתי הפעלה..@שמעון-חבצלת אתה בטוח שיש לך גיליון בשם "כתובות" בגוגל שיטס?
עכ"פ עדכנתי את הקוד למעלה וכעת זה יעבוד ללא קשר לשם הגיליון, וכן יעבוד על יותר מ500 ההודעות האחרונות.
-
@א-ב-ק כתב בבירור | איך להוציא קובץ עם כל מי ששלח אלי / קיבל ממני מייל:
איך אפשר לשנות את זה שזה יתן לי רשימה מדואר יוצא??
בעיקרון תשנה בשורה 11 ל
let threads = GmailApp.search("in:sent", start, maxThreads); -
מצורף קוד מעודכן שאמור להציג גם שיפור בביצועים (כי הרישום לאקסל נעשה רק כל 100 הודעות),
לשינוי לדואר יוצא, יש למחוק את ה"//" בשורה 13 ולרשום אותם בתחילת שורה 12 ולהיפך.
function exportEmails() { let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; sheet.clear(); sheet.appendRow(["כתובת שולח", "שם השולח", "כתובת נמען", "שם הנמען", "נושא", "תוויות", "תאריך שליחה", "איידי ההודעה"]); let maxThreads = 500; let start = 0; let dataRows = []; while (true) { let threads = GmailApp.getInboxThreads(start, maxThreads); //let threads = GmailApp.search("in:sent", start, maxThreads); if (threads.length == 0) { break; } for (let i = 0; i < threads.length; i++) { let messages = threads[i].getMessages(); for (let j = 0; j < messages.length; j++) { let email = messages[j]; let fromField = email.getFrom(); let matches = fromField.match(/"?(.*?)"?\s*<(.+?)>/); let name = matches && matches[1] ? matches[1] : ''; let emailAddress = matches && matches[2] ? matches[2] : fromField; let toField = email.getTo(); let matchesTo = toField.match(/"?(.*?)"?\s*<(.+?)>/); let nameTo = matchesTo && matchesTo[1] ? matchesTo[1] : ''; let emailAddressTo = matchesTo && matchesTo[2] ? matchesTo[2] : toField; let subject = email.getSubject(); let threadLabels = threads[i].getLabels(); let labelNames = []; for (let k = 0; k < threadLabels.length; k++) { labelNames.push(threadLabels[k].getName()); } let labels = labelNames.join(', '); let date = email.getDate(); let id = email.getId(); let formattedDate = Utilities.formatDate(date, 'GMT', 'yyyy-MM-dd HH:mm:ss'); dataRows.push([emailAddress, name, emailAddressTo, nameTo, subject, labels, formattedDate, id]); if (dataRows.length >= 100) { sheet.getRange(sheet.getLastRow() + 1, 1, dataRows.length, 8).setValues(dataRows); dataRows = []; } } } start += maxThreads; } if (dataRows.length > 0) { sheet.getRange(sheet.getLastRow() + 1, 1, dataRows.length, 8).setValues(dataRows); } } -
מצורף קוד מעודכן שאמור להציג גם שיפור בביצועים (כי הרישום לאקסל נעשה רק כל 100 הודעות),
לשינוי לדואר יוצא, יש למחוק את ה"//" בשורה 13 ולרשום אותם בתחילת שורה 12 ולהיפך.
function exportEmails() { let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; sheet.clear(); sheet.appendRow(["כתובת שולח", "שם השולח", "כתובת נמען", "שם הנמען", "נושא", "תוויות", "תאריך שליחה", "איידי ההודעה"]); let maxThreads = 500; let start = 0; let dataRows = []; while (true) { let threads = GmailApp.getInboxThreads(start, maxThreads); //let threads = GmailApp.search("in:sent", start, maxThreads); if (threads.length == 0) { break; } for (let i = 0; i < threads.length; i++) { let messages = threads[i].getMessages(); for (let j = 0; j < messages.length; j++) { let email = messages[j]; let fromField = email.getFrom(); let matches = fromField.match(/"?(.*?)"?\s*<(.+?)>/); let name = matches && matches[1] ? matches[1] : ''; let emailAddress = matches && matches[2] ? matches[2] : fromField; let toField = email.getTo(); let matchesTo = toField.match(/"?(.*?)"?\s*<(.+?)>/); let nameTo = matchesTo && matchesTo[1] ? matchesTo[1] : ''; let emailAddressTo = matchesTo && matchesTo[2] ? matchesTo[2] : toField; let subject = email.getSubject(); let threadLabels = threads[i].getLabels(); let labelNames = []; for (let k = 0; k < threadLabels.length; k++) { labelNames.push(threadLabels[k].getName()); } let labels = labelNames.join(', '); let date = email.getDate(); let id = email.getId(); let formattedDate = Utilities.formatDate(date, 'GMT', 'yyyy-MM-dd HH:mm:ss'); dataRows.push([emailAddress, name, emailAddressTo, nameTo, subject, labels, formattedDate, id]); if (dataRows.length >= 100) { sheet.getRange(sheet.getLastRow() + 1, 1, dataRows.length, 8).setValues(dataRows); dataRows = []; } } } start += maxThreads; } if (dataRows.length > 0) { sheet.getRange(sheet.getLastRow() + 1, 1, dataRows.length, 8).setValues(dataRows); } }@אביי כתב בבירור | איך להוציא קובץ עם כל מי ששלח אלי / קיבל ממני מייל:
getSheets
ניסתי גם אני עם הקוד הזה וזה התוצאה

-
@אביי כתב בבירור | איך להוציא קובץ עם כל מי ששלח אלי / קיבל ממני מייל:
getSheets
ניסתי גם אני עם הקוד הזה וזה התוצאה

@שעטנ-ז-ג-ץ זה צריך להיות סקריפט מואגד לקובץ גוגל שיטס
צור קובץ גוגל שיטס חדש,
תשנה את שם הגיליון ל"כתובות",לאחמ"כ תפתח בתפריט העליון את תוספים > apps script תמחק את הקוד הראשוני ותדביק את הקוד הזה ותפעיל. -
@שעטנ-ז-ג-ץ זה צריך להיות סקריפט מואגד לקובץ גוגל שיטס
צור קובץ גוגל שיטס חדש,
תשנה את שם הגיליון ל"כתובות",לאחמ"כ תפתח בתפריט העליון את תוספים > apps script תמחק את הקוד הראשוני ותדביק את הקוד הזה ותפעיל.@אביי כתב בבירור | איך להוציא קובץ עם כל מי ששלח אלי / קיבל ממני מייל:
@שעטנ-ז-ג-ץ זה צריך להיות סקריפט מואגד לקובץ גוגל שיטס
צור קובץ גוגל שיטס חדש,
תשנה את שם הגיליון ל"כתובות",לאחמ"כ תפתח בתפריט העליון את תוספים > apps script תמחק את הקוד הראשוני ותדביק את הקוד הזה ותפעיל.גם זה עשיתי ואותו שגיאה
-
@אביי כתב בבירור | איך להוציא קובץ עם כל מי ששלח אלי / קיבל ממני מייל:
@שעטנ-ז-ג-ץ זה צריך להיות סקריפט מואגד לקובץ גוגל שיטס
צור קובץ גוגל שיטס חדש,
תשנה את שם הגיליון ל"כתובות",לאחמ"כ תפתח בתפריט העליון את תוספים > apps script תמחק את הקוד הראשוני ותדביק את הקוד הזה ותפעיל.גם זה עשיתי ואותו שגיאה
@שעטנ-ז-ג-ץ רוצה להביא לינק למה שעשית? כי אצלי זה עובד מעולה, וכעת יצרתי קובץ חדש בדיוק לפי ההוראות שהבאתי לעיל וזה עובד אצלי מצויין.
-
מצורף קוד מעודכן שאמור להציג גם שיפור בביצועים (כי הרישום לאקסל נעשה רק כל 100 הודעות),
לשינוי לדואר יוצא, יש למחוק את ה"//" בשורה 13 ולרשום אותם בתחילת שורה 12 ולהיפך.
function exportEmails() { let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; sheet.clear(); sheet.appendRow(["כתובת שולח", "שם השולח", "כתובת נמען", "שם הנמען", "נושא", "תוויות", "תאריך שליחה", "איידי ההודעה"]); let maxThreads = 500; let start = 0; let dataRows = []; while (true) { let threads = GmailApp.getInboxThreads(start, maxThreads); //let threads = GmailApp.search("in:sent", start, maxThreads); if (threads.length == 0) { break; } for (let i = 0; i < threads.length; i++) { let messages = threads[i].getMessages(); for (let j = 0; j < messages.length; j++) { let email = messages[j]; let fromField = email.getFrom(); let matches = fromField.match(/"?(.*?)"?\s*<(.+?)>/); let name = matches && matches[1] ? matches[1] : ''; let emailAddress = matches && matches[2] ? matches[2] : fromField; let toField = email.getTo(); let matchesTo = toField.match(/"?(.*?)"?\s*<(.+?)>/); let nameTo = matchesTo && matchesTo[1] ? matchesTo[1] : ''; let emailAddressTo = matchesTo && matchesTo[2] ? matchesTo[2] : toField; let subject = email.getSubject(); let threadLabels = threads[i].getLabels(); let labelNames = []; for (let k = 0; k < threadLabels.length; k++) { labelNames.push(threadLabels[k].getName()); } let labels = labelNames.join(', '); let date = email.getDate(); let id = email.getId(); let formattedDate = Utilities.formatDate(date, 'GMT', 'yyyy-MM-dd HH:mm:ss'); dataRows.push([emailAddress, name, emailAddressTo, nameTo, subject, labels, formattedDate, id]); if (dataRows.length >= 100) { sheet.getRange(sheet.getLastRow() + 1, 1, dataRows.length, 8).setValues(dataRows); dataRows = []; } } } start += maxThreads; } if (dataRows.length > 0) { sheet.getRange(sheet.getLastRow() + 1, 1, dataRows.length, 8).setValues(dataRows); } }@אביי אלוףףף ממש תודה רבה!! עכשיו זה עבד לי!
-
@אביי אלוףףף ממש תודה רבה!! עכשיו זה עבד לי!
@שמעון-חבצלת אם אפשר קצת הסבר מה זה עושה (אם מישהו שלח לי מייל 5 פעמים הוא יקבל את זה 5 פעמים?)
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות