מודל שליחת מייל מעוצב למאזין עם קובץ מצורף
-
מודל שליחת מייל מעוצב למאזין עם קובץ מצורף
בס"ד
רציתם לשלוח מייל למאזין עם קובץ מצורף ולא ידעתם איך, בשבילכם בדיוק המודל הבא
למען הסדר הטוב נחלק את המודל לחלקים
נתחיל מהסקריפט נפתח פרוייקט חדש בגוגל סקריפט ניתן לו שם כלשהוא לדוגמא מייל למאזינים נמחק את כל מה שכתוב שם ונדביק את הטקסט הבא
1
הצורה הסטנדרטית אחסון הקבצים בגוגל דרייב
function doGet(e) { let recipient = e.parameter.P050; //כינוי השולח let name = 'מייל למאזין'; //כותרת ההודעה let subject = 'הקובץ שבקשתם'; //תוכן ההודעה (HTML) let body = `<b>תוכן ההודעה</b>`; //מזהה הקובץ בדרייב let filing = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; //עד כאן המשתנים לעריכת המשתמש let file = DriveApp.getFileById(filing); MailApp.sendEmail(recipient,subject,``,{name,htmlBody: body ,attachments:[file]}) };
הסברים לעריכה:
- שורה 4 מופיע השם שהמאזינים יראו על המייל שיקבלו
- שורה 6 מופיע הכותרת של המייל שהמאזינים יקבלו
- שורה 8 מופיע תוכן המייל בתבנית HTML נוכל לעצבו כרצוננו לדוגמא כאן
- שורה 10 מזהה הקובץ בדרייב (ID) לדוגמא מה שמודגש זה המזהה שצריך לכתוב בשורה 10
https:/drive.google.com/file/d/1Aon8tmIA0RBDwlrJqnlfkiQDGowjxNZ-/view
ניתן לצרף גם מספר קבצים למייל דוגמאות בספויילר
2 קבציםfunction doGet(e) { let recipient = e.parameter.P050; //כינוי השולח let name = 'מייל למאזין'; //כותרת ההודעה let subject = 'הקובץ שבקשתם'; //תוכן ההודעה (HTML) let body = `<b>תוכן ההודעה</b>`; //מזהה הקבצים בדרייב let filing = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; let filing2 = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; //עד כאן המשתנים לעריכת המשתמש let file = DriveApp.getFileById(filing); let file2 = DriveApp.getFileById(filing2); MailApp.sendEmail(recipient,subject,``,{name,htmlBody: body ,attachments:[file,file2]}) };
3 קבצים
function doGet(e) { let recipient = e.parameter.P050; //כינוי השולח let name = 'מייל למאזין'; //כותרת ההודעה let subject = 'הקובץ שבקשתם'; //תוכן ההודעה (HTML) let body = `<b>תוכן ההודעה</b>`; //מזהה הקבצים בדרייב let filing = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; let filing2 = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; let filing3 = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; //עד כאן המשתנים לעריכת המשתמש let file = DriveApp.getFileById(filing); let file2 = DriveApp.getFileById(filing2); let file3 = DriveApp.getFileById(filing3); MailApp.sendEmail(recipient,subject,``,{name,htmlBody: body ,attachments:[file,file2,file3]}) };
4 קבצים
function doGet(e) { let recipient = e.parameter.P050; //כינוי השולח let name = 'מייל למאזין'; //כותרת ההודעה let subject = 'הקובץ שבקשתם'; //תוכן ההודעה (HTML) let body = `<b>תוכן ההודעה</b>`; //מזהה הקבצים בדרייב let filing = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; let filing2 = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; let filing3 = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; let filing4 = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; //עד כאן המשתנים לעריכת המשתמש let file = DriveApp.getFileById(filing); let file2 = DriveApp.getFileById(filing2); let file3 = DriveApp.getFileById(filing3); let file4 = DriveApp.getFileById(filing4); MailApp.sendEmail(recipient,subject,``,{name,htmlBody: body ,attachments:[file,file2,file3,file4]}) };
5 קבצים
function doGet(e) { let recipient = e.parameter.P050; //כינוי השולח let name = 'מייל למאזין'; //כותרת ההודעה let subject = 'הקובץ שבקשתם'; //תוכן ההודעה (HTML) let body = `<b>תוכן ההודעה</b>`; //מזהה הקבצים בדרייב let filing = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; let filing2 = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; let filing3 = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; let filing4 = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; let filing5 = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; //עד כאן המשתנים לעריכת המשתמש let file = DriveApp.getFileById(filing); let file2 = DriveApp.getFileById(filing2); let file3 = DriveApp.getFileById(filing3); let file4 = DriveApp.getFileById(filing4); let file5 = DriveApp.getFileById(filing5); MailApp.sendEmail(recipient,subject,``,{name,htmlBody: body ,attachments:[file,file2,file3,file4]}) };
וכו'
2
צורה נוספת אחסון הקבצים על כל שרת אחסון
function doGet(e) { let recipient = e.parameter.P050; //כינוי השולח let name = 'מייל למאזין'; //כותרת ההודעה let subject = 'הקובץ שבקשתם'; //תוכן ההודעה (HTML) let body = `<b>תוכן ההודעה</b>`; //כתובת שרת האחסון let filing = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; //עד כאן המשתנים לעריכת המשתמש let file = UrlFetchApp.fetch(filing); MailApp.sendEmail(recipient,subject,``,{name,htmlBody: body ,attachments:[file]}) };
ההסברים לעריכה כנ"ל ההבדל היחיד במילוי הוא בשורה 10 שבמקום מזהה הקובץ בדרייב כותבים את הכתובת של הקובץ בשרת האחסון (יש גם הבדל קטן בשורה 12)
ניתן כנ"ל לשלוח גם מספר קבצים כמופיע בספויילר
2 קבציםfunction doGet(e) { let recipient = e.parameter.P050; //כינוי השולח let name = 'מייל למאזין'; //כותרת ההודעה let subject = 'הקובץ שבקשתם'; //תוכן ההודעה (HTML) let body = `<b>תוכן ההודעה</b>`; //כתובות שרת האחסון let filing = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; let filing2 = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; //עד כאן המשתנים לעריכת המשתמש let file = UrlFetchApp.fetch(filing); let file2 = UrlFetchApp.fetch(filing2); MailApp.sendEmail(recipient,subject,``,{name,htmlBody: body ,attachments:[file,file2]}) };
3 קבצים
function doGet(e) { let recipient = e.parameter.P050; //כינוי השולח let name = 'מייל למאזין'; //כותרת ההודעה let subject = 'הקובץ שבקשתם'; //תוכן ההודעה (HTML) let body = `<b>תוכן ההודעה</b>`; //כתובות שרת האחסון let filing = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; let filing2 = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; let filing3 = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; //עד כאן המשתנים לעריכת המשתמש let file = UrlFetchApp.fetch(filing); let file2 = UrlFetchApp.fetch(filing2); let file3 = UrlFetchApp.fetch(filing3); MailApp.sendEmail(recipient,subject,``,{name,htmlBody: body ,attachments:[file,file2,file3]}) };
4 קבצים
function doGet(e) { let recipient = e.parameter.P050; //כינוי השולח let name = 'מייל למאזין'; //כותרת ההודעה let subject = 'הקובץ שבקשתם'; //תוכן ההודעה (HTML) let body = `<b>תוכן ההודעה</b>`; //כתובות שרת האחסון let filing = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; let filing2 = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; let filing3 = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; let filing4 = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; //עד כאן המשתנים לעריכת המשתמש let file = UrlFetchApp.fetch(filing); let file2 = UrlFetchApp.fetch(filing2); let file3 = UrlFetchApp.fetch(filing3); let file4 = UrlFetchApp.fetch(filing4); MailApp.sendEmail(recipient,subject,``,{name,htmlBody: body ,attachments:[file,file2,file3,file4]}) };
5 קבצים
function doGet(e) { let recipient = e.parameter.P050; //כינוי השולח let name = 'מייל למאזין'; //כותרת ההודעה let subject = 'הקובץ שבקשתם'; //תוכן ההודעה (HTML) let body = `<b>תוכן ההודעה</b>`; //כתובות שרת האחסון let filing = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; let filing2 = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; let filing3 = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; let filing4 = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; let filing5 = 'https://f2.freeivr.co.il/assets/uploads/files/1659036172125-4d687dd2f67ef70c086f019f567cf422.gif'; //עד כאן המשתנים לעריכת המשתמש let file = UrlFetchApp.fetch(filing); let file2 = UrlFetchApp.fetch(filing2); let file3 = UrlFetchApp.fetch(filing3); let file4 = UrlFetchApp.fetch(filing4); let file5 = UrlFetchApp.fetch(filing5); MailApp.sendEmail(recipient,subject,``,{name,htmlBody: body ,attachments:[file,file2,file3,file4,file5]}) };
3
שמירת ופריסת הסקריפט
בסיום עריכת הסקריפט נלחץ בצד שמאל למעלה על הכפתור של פריסה ונבחר בפריסה חדשה, נבחר את סוג הפריסה כאפליקציית אינטרנט, נבחר תיאור כלשהוא, נגדיר שיהיה גישה לסקריפט לכולם ונלחץ למטה על הלחצן לפריסה
דוגמא
כעת נצטרך לאשר את ההתראות הקבועות של גוגל סקריפט נצטרך להכנס לחשבון גוגל שלנו וללחוץ על מתקדם ומעבר אל מייל למאזין (לא מאובטח)
בסיום נקבל את הכתובת של הפריסה תעתיקו ותשמרו אותה עוד נשתמש בה עוד רגע בשלב הבאכמובן המודל מאובטח בהחלט אתם היחידים ששולטים על הסקריפט
4
ההגדרה במערכת
לצורך שליחת המייל עם הקובץ המצורף למאזינים נשתמש במודל קבלת נתונים נכנס לאתר הניהול לשונית מערכת תוכן, בשלוחה שבחרנו לצורך ההרשמה נבחר את לשונית הגדרות מתקדמות, נמחק את כל מה שיש שם ונדביק את הטקסט הבא (הוספתי הסברים למתקשים)
//הגדרת סוג השלוחה כשלוחת קבלת נתונים type=recording_and_entering_data //הגדרת קבלת הנתונים במקלדת מייל 050-option=---EmailKeyboard //השמעת אישור קבלת הנתונים ללא השמעת מספר אישור say_approval_number=say_approval_no_number //ההגדרה שבסיום ישלח את הנתונים שהתקבלו לסקריפט שלנו recording_and_entering_data_ok_sand_api=yes //כתובת פריסת הסקריפט שלנו recording_and_entering_data_ok_sand_api_link=פה נדביק את כתובת הפריסה של הסקריפט שלנו
נוסיף בשורה האחרונה את כתובת הפריסה של הסקריפט שלנו שקיבלנו בשלב הקודם
ונלחץ על שמור
כעת נצטרך לעלות לשלוחה שני קבצי שמע אחד בשם050
שיבקש מהמאזין להקיש את כתובת המייל שלו וקובץ נוסף בשםM1447
שיאשר שקבלת כתובת המייל הסתיימה בהצלחה וברגעים אלו נשלח המייל
וסיימנו המודל פעילבהצלחה
-
פוסט זה נמחק! -
פוסט זה נמחק! -
פוסט זה נמחק! -
פוסט זה נמחק! -
@מיכאלוש האם אפשר שהמנהל יעלה מיילים דרך קובץ, והמערכת תשלח לכתובות האלו?
-
תודה ענקית ל @מיכאלוש על המדריך המועיל.
טיפ קטן: אם הקבצים שלכם בדרייב, והם מעל 25 מ"ב, א"א לשלוח אותם כקובץ מצורף אלא כקישור לדרייב, ולכן בגוגל סקריפט נגדיר, במקום ההגדרות דלעיל:function doGet(e) { let recipient = e.parameter.P050; //כינוי השולח let name = 'מייל למאזין'; //כותרת ההודעה let subject = 'הקובץ שבקשתם'; //תוכן ההודעה let body = `<b>תוכן ההודעה</b>`; //מזהה הקובץ בדרייב let filing = '1GUwbRJHg2Swj-4qPnslQrjDeUVOS3KAK'; let file = DriveApp.getFileById(filing); let fileUrl = file.getUrl(); let emailBody = body + `<br/><br/><a href="${fileUrl}">קישור לקובץ בדרייב</a>`; MailApp.sendEmail(recipient, subject, '', { name, htmlBody: emailBody }); };
-
בנוסף, אם תרצו שהמייל יכיל קישור לאתר, השתמשו בקוד הבא:
function doGet(e) { let recipient = e.parameter.P050; //השם שלכם let name = 'מייל למאזין'; //כותרת הודעה let subject = 'הקובץ שבקשתם'; //תוכן הודעה let body = `<b>תוכן ההודעה</b>`; // כתובת קישור let websiteUrl = 'https://example.com'; let emailBody = body + `<br/><br/><a href="${websiteUrl}">טקסט קישור</a> `; MailApp.sendEmail(recipient, subject, '', { name, htmlBody: emailBody }); };
-
עשיתי את זה אבל הוא לא נותן להקיש כתובת מייל
-
אצלכם כן עובד ההקלדה?
אצלי רק שומעים איך שאני מקליד -
פוסט זה נמחק! -
-
שלום וברכה !
האם יש אפשרות לבצע את הפעולה של הקוד הזה דרך שרת ,
שזה אומר להכניס את הקוד הזה לשרת ושהקוד יפעל באותה דרך שהוא פועל בגוגל סקריפט , למה זה רלוונטי ?
אוקי , לגוגל סקריפט יש מגבלה מסויימת שלאחר מספר רב של נסיונות שעוברים כמובן בהצלחה , נוצרת שגיאה ,
מה שקורה שבמערכת שלי משתמשים המון מאזינים באופציה הזו , ואני חייב לתת את המענה הזה לכולם , אי אפשר שרוב המאזינים יקבלו שגיאה .
אשמח אם תוכלו לעזור . -
@קול-הלב כתב במודל שליחת מייל מעוצב למאזין עם קובץ מצורף:
אוקי , לגוגל סקריפט יש מגבלה מסויימת שלאחר מספר רב של נסיונות שעוברים כמובן בהצלחה , נוצרת שגיאה ,
איזה שגיאה?
-
@צדיק-תמים כתב במודל שליחת מייל מעוצב למאזין עם קובץ מצורף:
@קול-הלב כתב במודל שליחת מייל מעוצב למאזין עם קובץ מצורף:
אוקי , לגוגל סקריפט יש מגבלה מסויימת שלאחר מספר רב של נסיונות שעוברים כמובן בהצלחה , נוצרת שגיאה ,
איזה שגיאה?
א המייל לא נשלח למשתמש .
ב במייל שלי אני מקבל הודעה כל כמה ימים על הפעולות שבוצעו בהצלחה ועל מה שלא , הרוב זה מה שלא בוצע בהצלחה . -
@קול-הלב מה ההודעת שגיאה של מתי שלא בוצע בהצלחה?
-
@צדיק-תמים כתב במודל שליחת מייל מעוצב למאזין עם קובץ מצורף:
@קול-הלב מה ההודעת שגיאה של מתי שלא בוצע בהצלחה?
בדיוק .
בעיקרון יש הגבלה לפעולות בגוגל סקריפט זה מה שאני יודע ובפרט אם זה בחינם מובן למה זה עם מגבלה -
@קול-הלב כתב במודל שליחת מייל מעוצב למאזין עם קובץ מצורף:
@צדיק-תמים כתב במודל שליחת מייל מעוצב למאזין עם קובץ מצורף:
@קול-הלב מה ההודעת שגיאה של מתי שלא בוצע בהצלחה?
בדיוק .
???
בכל מקרה לגוף השאלה, לגוגל סקריפט יש הגבלת שליחה של 100 מיילים ביום, כיוון שאתה מתעקש משום מה לא לגלות את השגיאה המדויקת אני אניח שזו הבעיה.
אם כן הפיתרון הוא:- לעשות מנוי Google Workspace בתשלום, ושם המגבלה היא 1500 ביום
- כמו שכתבת - לשלוח דרך שרת, אבל לא עם הקוד שרץ בגוגל סקריפט אלא עם קוד חדש שישלח דרך SMTP - ולזה תצטרך שרת, ומישהו שיכתוב לך את הקוד, מסתמא בתשלום
- לשים את הסקריפט בכמה חשבונות, ולפתוח כמה שלוחות קבלת נתונים שכל אחת פונה לסקריפט של חשבון אחר, ולשים בכל אחת הגבלת כניסה שמתאפסת כל יום, כך שאם נכנסו לשלוחה יותר מ100 איש ביום יעברו לשלוחה הבאה בתור וכן הלאה.
-
@צדיק-תמים כתב במודל שליחת מייל מעוצב למאזין עם קובץ מצורף:
@קול-הלב כתב במודל שליחת מייל מעוצב למאזין עם קובץ מצורף:
@צדיק-תמים כתב במודל שליחת מייל מעוצב למאזין עם קובץ מצורף:
@קול-הלב מה ההודעת שגיאה של מתי שלא בוצע בהצלחה?
בדיוק .
???
בכל מקרה לגוף השאלה, לגוגל סקריפט יש הגבלת שליחה של 100 מיילים ביום, כיוון שאתה מתעקש משום מה לא לגלות את השגיאה המדויקת אני אניח שזו הבעיה.
אם כן הפיתרון הוא:- לעשות מנוי Google Workspace בתשלום, ושם המגבלה היא 1500 ביום
- כמו שכתבת - לשלוח דרך שרת, אבל לא עם הקוד שרץ בגוגל סקריפט אלא עם קוד חדש שישלח דרך SMTP - ולזה תצטרך שרת, ומישהו שיכתוב לך את הקוד, מסתמא בתשלום
- לשים את הסקריפט בכמה חשבונות, ולפתוח כמה שלוחות קבלת נתונים שכל אחת פונה לסקריפט של חשבון אחר, ולשים בכל אחת הגבלת כניסה שמתאפסת כל יום, כך שאם נכנסו לשלוחה יותר מ100 איש ביום יעברו לשלוחה הבאה בתור וכן הלאה.
תודה רבה ,
לגבי הפעלת הקוד דרך שרת , אם יש לי מישהוא שיודע תיכנות ברמה טובה ואני רוצה שיבנה לי את הקוד שיפעל דרך שרת , מה אני צריך לומר לו , מדובר באחד שלא ממש יודע את הממשק של ימות . -
@קול-הלב שהוא צריך לבנות API שיקבל פניה בHTTP GET עם פרמטר (query string) בשם
P050
שבו תהיה כתובת המייל שהמאזין הקיש, ואליה הוא צריך לשלוח את המייל עם הקובץ. -
@צדיק-תמים כתב במודל שליחת מייל מעוצב למאזין עם קובץ מצורף:
@קול-הלב שהוא צריך לבנות API שיקבל פניה בHTTP GET עם פרמטר (query string) בשם
P050
שבו תהיה כתובת המייל שהמאזין הקיש, ואליה הוא צריך לשלוח את המייל עם הקובץ.תודה רבה רציתי לשאול עוד שאלה קטנה .
האם יש אפשרות , כעת להגדיר בקבלת נתונים שאם המאזין כבר הקיש כתובת מייל בעבר , אז שישלח אליו המייל , מבלי שיצטרך להקיש שוב .