צריך שרת ווינדוס שיעבוד נון-סטופ. מישהו מכיר משהו פשוט וקל במחיר סביר?
-
@chv אמר בצריך שרת ווינדוס שיעבוד נון-סטופ. מישהו מכיר משהו פשוט וקל במחיר סביר?:
נ.ב. חבל לעבוד עם אאוטלוק - כל מה שתוכל איכשהו לעשות באאוטלוק תוכל לעשות בגוגל סקריפט - פי 100 פונקציונלי.
איך אני עושה מענה אוטומטי למיילים עם קובץ מצורף בגוגל סקריפט, יש לך מושג?
-
@by6199 אמר בצריך שרת ווינדוס שיעבוד נון-סטופ. מישהו מכיר משהו פשוט וקל במחיר סביר?:
בנוגע לגוגל סקריפט למיטב ידיעתי זה לא משיב מיידי אלא פעם בשעה או משהו כזה לכל הבקשות שנשלחו.
תלוי בהגדרה של הטריגר.. אתה יכול גם להגדיר כל דקה.
(אבל כנראה תגיע למגבלה של זמן הרצה יומי) -
@aaron אמר בצריך שרת ווינדוס שיעבוד נון-סטופ. מישהו מכיר משהו פשוט וקל במחיר סביר?:
@by6199 אמר בצריך שרת ווינדוס שיעבוד נון-סטופ. מישהו מכיר משהו פשוט וקל במחיר סביר?:
בנוגע לגוגל סקריפט למיטב ידיעתי זה לא משיב מיידי אלא פעם בשעה או משהו כזה לכל הבקשות שנשלחו.
תלוי בהגדרה של הטריגר.. אתה יכול גם להגדיר כל דקה.
(אבל כנראה תגיע למגבלה של זמן הרצה יומי)מעניין מה שאתה אומר.
מה המגבלה היומית שלהם? -
@ענן יש פרמטר attachments בפונקציה sendemail. לוקחים את הקובץ מהדריייב באמצעות DriveApp.getFileById את ה-ID אתה יכול פשוט להוציא מהקישור של הקובץ בדרייב (לשיתוף).
הנה דוגמא בסיסית לשליחת הודעה עם קובץ -
function myFunction() { GmailApp.sendEmail('target address', 'subject', 'body', {attachments:[DriveApp.getFileById('file-id')]}); }
עכשיו ליצור טריגר שיריץ את myFunction().
אאלט לעשות את זה אוטומטי, לא רק כל דקה אלא כתגובה למיילים או כל דבר אחר בגוגל. בדרך כלל (לא מכיר אחרת) עושים את זה עם sheets, בצורה שיש כתובת שמפעילה את הסקריפט (deploy as web app) והלקוח לוחץ עליה.@by6199 כל המגבלות היומיות שלהם מפורטות כאן (קצת מסובך להבין ויש מחלייקת בפשט בכמה אשכולות בסטאק)
סטיה מהנושא
-
@מנחם תודה על המדריך! עובד נהדר!
עשיתי הרצה כל דקה ועובד ב״ה- אני צריך שינוי קטן במלל, כרגע אני מצליח להכניס שורה אחת אבל בלי שירד שורה, יש אופציה כזאת שירד שורה?
- יש אופציה שישלח 2 קבצים?
var file = DriveApp.getFileById('1_qhGsvuQeoeR9WoTNCm_TVXIgiDnqisG').getAs('application/pdf') function reply() { var label = GmailApp.getUserLabelByName('new-mail'); var messages = label.getThreads(); for(var i=0;i<messages.length;i++){ messages[i].reply('מלל בגוף המייל',{ attachments:[file] }); messages[i].removeLabel(label); } }
[הבהרה: מדובר בדבר האבד]
-
@chv אמר בצריך שרת ווינדוס שיעבוד נון-סטופ. מישהו מכיר משהו פשוט וקל במחיר סביר?:
@Sfsf3925 לא פירטת מה זה ה"שרת פרטי" של חבר שלך. שרת פיזי? או VPS? אם כן של איזה חברה (רוב החברות זה בהחלט פעיל 24/7)
אם הבעיה היא שכל פעם שאתה מתנתק מה-SSH מתבטלות כל הפעולות - יש פיתרון בסיסי לזה עי' כאן https://stackoverflow.com/a/56550673/13312191
נ.ב. חבל לעבוד עם אאוטלוק - כל מה שתוכל איכשהו לעשות באאוטלוק תוכל לעשות בגוגל סקריפט - פי 100 פונקציונלי.
שרת VPS
אבל ב״ה הסקריפט של גוגל עובד חבל על הזמן!
חבל שלא נותנים את זה פשוט מובנה בג׳ימייל... -
@Sfsf3925 אמר בצריך שרת ווינדוס שיעבוד נון-סטופ. מישהו מכיר משהו פשוט וקל במחיר סביר?:
@מנחם תודה על המדריך! עובד נהדר!
עשיתי הרצה כל דקה ועובד ב״ה- אני צריך שינוי קטן במלל, כרגע אני מצליח להכניס שורה אחת אבל בלי שירד שורה, יש אופציה כזאת שירד שורה?
- יש אופציה שישלח 2 קבצים?
var file = DriveApp.getFileById('1_qhGsvuQeoeR9WoTNCm_TVXIgiDnqisG').getAs('application/pdf') function reply() { var label = GmailApp.getUserLabelByName('new-mail'); var messages = label.getThreads(); for(var i=0;i<messages.length;i++){ messages[i].reply('מלל בגוף המייל',{ attachments:[file] }); messages[i].removeLabel(label); } }
[הבהרה: מדובר בדבר האבד]
קופץ על העגלה... יש אפשרות להוסיף לגוף המייל תמונה, או את החתימה ברירת מחדל שלי?
-
@Sfsf3925 @ענן אפשר להוסיף מה שרוצים לגוף המייל, כמו כל HTML. הפרמטר הוא htmlBody (הכי טוב במקום להסתבך, פשוט ליצור משתנה שהערך שלו הוא המבנה של הHTML הרצוי, ולהכניס אחרי זה את שם המשתנה במקום בו אמורים לכתוב את המלל (body))
תקראו קצת את התיעוד ותנסו לבד https://developers.google.com/apps-script/reference/gmail/gmail-app#sendemailrecipient,-subject,-body,-optionsכמובן אפשר לשלוח כמה קבצים ביחד, צריך גם כאן ללמוד בעצם על המבנה של הערך בו משתמשת הפרמטר attachments (שהוא בעצם בנוי כ-blob עיי"ש) ולהבין איך להכניס מערך של קבצים בכזה דבר.
עיי"ש היטב -
@chv אמר בצריך שרת ווינדוס שיעבוד נון-סטופ. מישהו מכיר משהו פשוט וקל במחיר סביר?:
@by6199 כל המגבלות היומיות שלהם מפורטות כאן (קצת מסובך להבין ויש מחלייקת בפשט בכמה אשכולות בסטאק)
מישהו מצליח להבין כמה המגבלות?
אני שולח בתגובה קובץ ששוקל 211KB
למעשה, אתמול עדכנתי את הסקריפט, ולחצתי בטעות פעמיים על ׳הפעל׳ וזה שלח לכל מי ששלח בימים האחרונים, 2 מיילים עם קובץ ניסיון
ולמעשה כרגע הוא נותן שגיאה:14 באוק׳ 2020, 16:14:58 שגיאה Exception: השירות הופעל יותר מדי פעמים ליום אחד: email. at reply(קוד:6:13)
עוד משהו, ניסיתי ללא הצלחה לצרף 2 קבצים במייל, מישהו מוכן בבקשה לכתוב לי את השורת קוד כדי שישלח 2 קבצים ולא אחד? תודה רבה מראש
var file = DriveApp.getFileById('10KEzsMppzds9Z6TfxxbdfvAmK7GyVR58').getAs('application/pdf')
-
@Sfsf3925 בנוגע לשאלה השניה - צירוף כמה קבצים - פשוט תוסיף עוד שורה לכל קובץ שאתה מוסיף - בתחילת הקוד ככה לדגומא:
var firstfile = DriveApp.getFileById('איי-די של הקובץ הראשון').getAs('application/pdf') var secondfile = DriveApp.getFileById('איי-די של הקובץ השני').getAs('application/pdf')
ואז בשורה attachments תכניס את שניהם ככה:
attachments:[firstfile, secondfile]
לגבי השאלה הראשונה לא ככ הצלחתי להבין מה בדיוק עשית ומה קרה. מה זה אומר עדכנת את הקוד, ומה זה אומר שלח לכולם (איך? איך הוא יודע בכלל למי הוא שלח לאחרונה? אם אתה עושה את הקוד כמו שכתוב- הקוד מוחק את התווית מכל הודעה שהוא מטפל בה, כך שהוא לא יתבלבל איתה יותר)
-
var file = DriveApp.getFileById('10KEzsMppzds9Z6TfxxbdfvAmK7GyVR58').getAs('application/pdf') function reply() { var label = GmailApp.getUserLabelByName('New-Mail'); var messages = label.getThreads(); for(var i=0;i<messages.length;i++){ messages[i].reply('הודעה בגוף המייל',{ attachments:[file] }); messages[i].removeLabel(label); } }
יכול להיות שהוא לא בהכרח מתייחס לתווית? כי גם לפני שיצרתי את התווית הוא החזיר