איזה משתנה מחזיר את כתובת מייל השולח בגוגל סקריפט?
-
לאחרונה ראיתי שואלים את השאלה בכמה מקומות וגם אני הייתי שמח להבין בזה יותר, אמרתי להביא את השאלה לפני המומחים.
כשמתעסקים בסקריפט בגוגל סקריפט הרבה פעמים הייתי רוצה שיהיה לי דרך קל שהסקריפט תזהה את כתובת המייל - אפשרות של זיהוי כתובת המייל גרידא, בלי שם השולח רק כתובתו, אשמח לשמוע פתרונות מהמומחים. -
@מלאכת-מחשבת תזהה איפה? בצילום תעודת זהות?
אם קשה לך להסביר יותר כי אתה לא מבין מה לא הבנתי, אז אולי יש מצב לסקריפט קצר בו אתה מנסה לגשת לנתון הנ"ל? -
@מלאכת-מחשבת נראה לי שעיון באשכול זה יעזור לך
-
@dovid אמר באיזה משתנה מחזיר את כתובת מייל השולח בגוגל סקריפט?:
@מלאכת-מחשבת תזהה איפה? בצילום תעודת זהות?
אם קשה לך להסביר יותר כי אתה לא מבין מה לא הבנתי, אז אולי יש מצב לסקריפט קצר בו אתה מנסה לגשת לנתון הנ"ל?צודק, לא הסברתי מספיק, אני כ"כ נתון בזה שאני כבר חושב שכולם מבינים לבד..
אני מתעסק בסקריפט העברת הודעות (ברעיון של זה), אסכם את התהליך שזה עושה בעצם, לדוג' יש לי 2 מיילים ואני יושב בעיקר על מייל ראשי, והשני היא נספח, אני רוצה שכל פעם שיש לי מייל בנספח שאקבל על זה הודעה במייל הראשי.
ולמעיישה אני רוצה שהוא יתן לי רק את כתובת המייל של זה ששלח לי מייל בנספח, בלי שמו וכו, שיהיה לי הגדרה שמביאה את כתובת המייל נטו.@yossiz אמר באיזה משתנה מחזיר את כתובת מייל השולח בגוגל סקריפט?:
@מלאכת-מחשבת נראה לי שעיון באשכול זה יעזור לך
אני צריך הגדרה בדיוק הפוכה, שיתן רק את הכתובת, אבל לא את שניהם, לכן לא בדיוק הסתדרתי עם הנ"ל.
תודה. -
-
@מלאכת-מחשבת אני גם נתקלתי בבעיה הזו, וראיתי שאפשרלהוציא את זה איכשהו מתוך אוביקט ההודעה עצמו, אבל לא מימשתי את זה עדיין, תנסה בכיוון הזה, לקחת את כל ההודעה המלאה כסטרינג ולחלץ ממנו את הכתובת.
-
@מלאכת-מחשבת אמר באיזה משתנה מחזיר את כתובת מייל השולח בגוגל סקריפט?:
שם השולח בלי הכתובת
לא, זה מחזיר את שתיהם, בפורמט המכונה rfc2822,
השאלה שלך הוא איך אתה מחלץ משם את הכתובת,
התשובות בנושא שציינתי למעלה עונים על זה -
@yossiz אמר באיזה משתנה מחזיר את כתובת מייל השולח בגוגל סקריפט?:
לא, זה מחזיר את שתיהם, בפורמט המכונה rfc2822,
זה אמור לעשות את זה, משום מה אצלי הוא לא עושה את זה, אני לא מצליח להבין למה..
@yossiz אמר באיזה משתנה מחזיר את כתובת מייל השולח בגוגל סקריפט?:
השאלה שלך הוא איך אתה מחלץ משם את הכתובת,
התשובות בנושא שציינתי למעלה עונים על זההאמת מה שבוער לי זה שיהיו לי 2 דברים נפרדים 1 הכתובת 2 שם השולח, שאוכל להפריד ביניהם באותה סקריפט. (ב2 מתודות נפרדות)
-
@מלאכת-מחשבת מעניין, בדקתי לפני שכתבתי
הקוד שלי הבדיקה שלי:
function myFunction() { var thread = GmailApp.getInboxThreads(0,1)[0]; // Get first thread in inbox var message = thread.getMessages()[0]; // Get first message Logger.log(message.getFrom()); // Log from address of the message }
(כן, העתקתי ישירות מהתיעוד...)
והתוצאה:
-
@מלאכת-מחשבת אמר באיזה משתנה מחזיר את כתובת מייל השולח בגוגל סקריפט?:
האמת מה שבוער לי זה שיהיו לי 2 דברים נפרדים 1 הכתובת 2 שם השולח, שאוכל להפריד ביניהם באותה סקריפט. (ב2 מתודות נפרדות)
התשובות שם עונים על זה גם. תקרא את השרשור שם במילואו
-
@אביי אמר באיזה משתנה מחזיר את כתובת מייל השולח בגוגל סקריפט?:
@yossiz צודק.
הצלחת להוציא את מה שרצית?
אולי תציג איך הקוד שלך יוצא כך במצב שאפשר לחלק את השם מהכתובת. -
@מלאכת-מחשבת אתה לא שאלת על הפרדת המייל, כתבת שאין כתובת מייל בכלל!
-
@yossiz אמר באיזה משתנה מחזיר את כתובת מייל השולח בגוגל סקריפט?:
@מלאכת-מחשבת נראה לי שעיון באשכול זה יעזור לך
לכאורה אפשר לעשות את זה בקלות הרבה יותר
כתובת בלבד:function myFunction() { Logger.log(GmailApp.getInboxThreads(0,1)[0].getMessages()[0].getFrom().split("<")[1].split(">")[0]) }
שם בלבד:
function myFunction() { Logger.log(GmailApp.getInboxThreads(0,1)[0].getMessages()[0].getFrom().split("<")[0]) }
(מקור)
עריכה: הרצתי את זה על 350 ת'רדים - 1408 הודעות, ב35 מתוכם זה נכשל כיוון שgetFrom החזיר רק כתובת (רובן מיילים שהתקבלו מכתובת ג'ימייל דרך מערכת וירטואל מייל של @שואף), בחלק מהמיילים כשאני ניגש אליהם דרך הממשק יש בהחלט שם, לא ברור לי למה getFrom לא מחזיר אותו.
בכל השאר חזר גם מייל וגם שם. -
@dovid אמר באיזה משתנה מחזיר את כתובת מייל השולח בגוגל סקריפט?:
@מלאכת-מחשבת אתה לא שאלת על הפרדת המייל, כתבת שאין כתובת מייל בכלל!
@מלאכת-מחשבת אמר באיזה משתנה מחזיר את כתובת מייל השולח בגוגל סקריפט?:
הרבה פעמים הייתי רוצה שיהיה לי דרך קל שהסקריפט תזהה את כתובת המייל - אפשרות של זיהוי כתובת המייל גרידא, בלי שם השולח רק כתובתו, אשמח לשמוע פתרונות מהמומחים.
ברעיון השאלה שלי היתה על כתובת מייל בלבד, כי שם השולח יש לי כבר, למעשה הצלחתי לעשות שיהיה רק כתובת, אבל אז אין שם, הייתי רוצה את שתיהם אבל כשתי קודים.
אני לא מצליח לשלב את שתיהם בקוד אחד אבל בנפרד -
@מלאכת-מחשבת עניתי לך במייל.
let email = message.getFrom().split("<")[1].split(">")[0] let name_0 = message.getFrom().split("<")[0] let name = name_0.replace(/"/g, ""); Logger.log(email); Logger.log(name);
אגב שאלה לאלה שבאמת למדו js, האם ניתן לעשות את הריפלקס כך איכשהו, דהיינו עם אותו שם משתנה?
let name = message.getFrom().split("<")[0] let name = name.replace(/"/g, "");
-
@אביי אמר באיזה משתנה מחזיר את כתובת מייל השולח בגוגל סקריפט?:
let email = message.getFrom().split("<")[1].split(">")[0] let name_0 = message.getFrom().split("<")[0] let name = name_0.replace(/"/g, ""); Logger.log(email); Logger.log(name);
זה בדיוק מה שכתבתי רק בתוספת הסרת ה" לפני ואחרי באמצעות החלפת טקסט... היה עדיף לעשות את זה עם slice:
message.getFrom().split("<")[0].slice(1, -1);
כדי שאם למישהו קוראים לדוגמה
ד"ר כהן
הוא לא יהפוך לדר כהן
..אגב שאלה לאלה שבאמת למדו js, האם ניתן לעשות את הריפלקס כך איכשהו, דהיינו עם אותו שם משתנה?
let name = message.getFrom().split("<")[0] let name = name.replace(/"/g, "");
כיוון ש
message.getFrom().split("<")[0]
מחזיר סטרינג, אפשר לשרשר אחריו מתודות של הטייפ סטרינג -let name = message.getFrom().split("<")[0].replace(/"/g, "");
או להחליף את ערך המשתנה -
let name = message.getFrom().split("<")[0] name = name.replace(/"/g, "");
אם כי בהרבה מקרים כדאי להשתמש במשתנה שונה לטקסט לפני העיבוד (במקרה הזה הרג'קס) ושם חדש לאחרי, לטובת קריאות