מדריך | שמיעת המיילים בטלפון + צינתוק
-
@055678 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@fshlomo בהקשה על 8 להודעה הבאה ו-2 לקודם
אני לוחץ על 6 עובר לי הודעה בסדר
יש אפשרות לעשות שאף אחד לא יוכל להיתקשר לקו אלא מי שרשום ברשימת התפוצה?@fshlomo אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
אני לוחץ על 6 עובר לי הודעה בסדר
כי כשאתה לוחץ על 6 אתה עובר 5 דקות קדימה ואם ההודעה אינה ארוכה יותר מ5 דקות אתה עובר אוטומטית להודעה הבאה
-
@avramk100 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@fshlomo https://f2.freeivr.co.il/topic/94/פילטר-לפי-מספר-רשימות-תפוצה-שונות-כהטמעה-בכל-מודול
חבל להשתמש בפילטר לפי רשימת תפוצה אם הוא נילא נרשם לצינתוקים עדיף להשתמש במודול
https://f2.freeivr.co.il/topic/4307/פילטר-לפי-רשימת-צינתוקים-כמודול-או-כהטמעה-בכל-מודול?_=1644314090207 -
מ מיכאלוש התייחס לנושא זה ב
-
@אבי_770 כן. אני מצרף לך קוד שמתאים לפרייבט.
נ.ב. מי שרוצה יכול להוסיף את זה כמשתנה במקור הקובץ./* Written by: abaye Contact: abaye.ym@gmail.com */ function MailToPhone() { let user = '079999999' // מספר המערכת let pass = '111111' // סיסמא let up = ':' let ph1 = 'ivr2:/' let ph2 = '5' //מס' השלוחה להשמעה let ph3 = '/' let path = (`${ph1}${ph2}${ph3}`) //נתיב let token = (`${user}${up}${pass}`) let tag = 'ToPhone' let tzintuk = '1' let label = GmailApp.getUserLabelByName(tag) let messages = label.getThreads() if (messages.length > 0) { for (let message of messages) { let firstmessage = message.getMessages()[0] let subject = firstmessage.getSubject() let sender = firstmessage.getFrom() let to = firstmessage.getTo() let boddy = firstmessage.getPlainBody() boddy = boddy.replace(/\s{2,}/g, ' ') boddy = boddy.substring(0,2200) + ' עד כאן ההודעה!' boddy = boddy.replace(new RegExp(`"|>|<`, 'g',), '') subject = subject.replace(new RegExp(`"|>|<`, 'g'), '') sender = sender.replace(new RegExp(`"|>|<`, 'g'), '') to = to.replace(new RegExp(`"|>|<`, 'g'), '') let textms = (`להלן הודעת המייל שהתקבלה: מאת "${sender} אל ${to} :הנושא ${subject} גוף ההודעה: ${boddy}"`) let listfile = JSON.parse(UrlFetchApp.fetch(`https://private.call2all.co.il/ym/api/GetIVR2Dir?token=${token}&path=${path}`)); if (listfile.responseStatus === 'OK') { let lastFileName = listfile.files .filter(file => file.fileType === 'AUDIO' || file.fileType === 'TTS') .map(file => file.name.split('.')[0]) .find(fileName => !isNaN(fileName)); let newNumber = Number(lastFileName || -1) + 1; let newName = newNumber.toString().padStart(3, '0'); let filePath = `${path}${newName}.tts`; let data = { 'token': token, 'what': filePath, 'contents': textms }; let options = { 'method' : 'post', 'payload' : data }; let response = UrlFetchApp.fetch('https://private.call2all.co.il/ym/api/UploadTextFile', options); UrlFetchApp.fetch(`https://private.www.call2all.co.il/ym/api/RunTzintuk?token=${token}&phones=tzl:${tzintuk}`) Logger.log(response.getContentText()); message.removeLabel(label) } } } }
-
ש שמואל ש. התייחס לנושא זה ב
-
-
-
@מנצפכ אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@אבי_770 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@מנצפכ @אביי @שאול-נ-י באיזה שפה כותבים את הקודים? אפשר לכתוב ב PHP? ואיפה אני יכול ללמוד עוד על השימוש בסקריפט של גוגל ואיך משתמשים איתו?
זה על בסיס JavaScript עם תוספות של פקודות מגוגל
איפה אפשר ללמוד על הפקודות האלה?
-
@מנצפכ אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
תמחק את שורה 65 בקוד שעשיתי
אבל זה משמיע דואר נכנס! (או שזה עובד שכל מה שבתווית עולה?)
-
@אבי_770 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@מנצפכ הכוונתי שאני רוצה לעשות שלוחה שתשמיע דואר יוצא
תעשה שתי קבצים כאלה
לאחד תעשה תווית של דואר נכנס ולשני תעשה תגית של דואר יוצא
בחיפוש במייל תעשה דואר נכנס במקום דואר יוצא
(בעיקרון אפשר שתי פונקציות אבל נראה לי שזה יסבך) -
@מנצפכ אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
תמחק את שורה 65 בקוד שעשיתי
אבל זה משמיע דואר נכנס! (או שזה עובד שכל מה שבתווית עולה?)
-
@אבי_770 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@מנצפכ הכוונתי שאני רוצה לעשות שלוחה שתשמיע דואר יוצא
תעשה שתי קבצים כאלה
לאחד תעשה תווית של דואר נכנס ולשני תעשה תגית של דואר יוצא
בחיפוש במייל תעשה דואר נכנס במקום דואר יוצא
(בעיקרון אפשר שתי פונקציות אבל נראה לי שזה יסבך) -
-
ב"ה
תמיד רציתם לשמוע את המייל שלכם בטלפון ללא צורך בגישה כל פעם למחשב?
הנה הפיתרון!!בעזרת המדריך הזה תוכלו גם אתם לשמוע את המייל דרך הטלפון בהקראה אוטומטית וגם לקבל צינתוק כשהגיע מייל חדש
נחלק את זה לכמה שלבים כדי להקל על ההבנה
נתחיל עם המערכת
שלב א: קודם כל צריך להיות ברשותכם מערכת תוכן של חברת "ימות המשיח"
(באם אין לכם עדיין, התקשרו ל-0773137770 שלוחה 3>1 ופתחו מערכת חדשה. התקשרו מיד למערכת, הכניסו סיסמת מנהל כדי להפעיל את הקו)
עכשיו שימו
לבדוק באיזה שרת נמצא המערכת שלכם, יש שרת פריוט ויש שרת רגיל. כי זה משנה לקוד בהמשך.
שלב ב: הגדרת שלוחת ההשמעה
כדי שתוכלו לשמוע את המיילים צריך להיות במערכת שלוחת השמעת קבצים!
לאורך כל המדריך נלך עם שלוחה 1 כדוגמא להשמעת קבציםיכול להיות שכבר פתוח לכם שלוחה 1 והיא מוגדרת כהשמעת קבצים.
באם לא, ניכנס לאתר ניהול המערכת בשרת הרגיל או שרת הפריוט ניכנס ללשונית "מערכת תוכן" ונלחץ על "צור שלוחה חדשה", כבדוגמא
שלב ג: הגדרת והרשמה לרשימת צינתוקים
כדי שתוכלו לקבל צינתוק בעת הגעת מייל חדש תצטרכו להירשם לרשימת צינתוקים!
איך נרשמים? פותחים שלוחה חדשה, לדוגמא שלוחה 2, כמו שהסברנו לעיל ובמספר שלוחה כותבים 2
עכשיו נכנסים ללשונית "הגדרות מתקדמות", מוחקים את הקוד הקיים -אם קיים- ומניסים את הקוד הבאtype=tzintuk זהו הגדרת סוג השלוחה list_tzintuk=123 וזה שם רשימת הצינתוקים
(שם רשימת הצינתוקים יכול להיות כל מספר וכמה מספרים שתרצו [רק לשנות לפי זה בקוד הבא])
אחרי השמירה מתקשרים למערכת מקישים 2 ומאשרים הרשמה לקבלת צינתוקים
זהו. המערכת מוכנה להשמיע לכם את המיילים ולצנתק לכם על כל מייל חדש
עכשיו רק צריך שמיילים יכנסו לשלוחת השמעת הקבצים שבמערכת שיהיה מה להשמיע! איך עושים את זה?נעבור לשלבי המייל
שלב ד: יצירת והגדרת תווית
ניצור מסנן שכל מייל חדש שנכנס יקבל תווית שהסקריפט ירוץ עליו
איך עושים את זה? ובכן,
כשנכנסים למייל לוחצים על המסומן
ואז נפתח תפריט כזובוחרים לפי המסומן ולוחצים על 'מסנן חדש'
מאשרים את יצירת המסנן ועוברים לשלב הבא
בשלב הזה ממלאים ובוחרים בתווית חדשה, נותנים לה שם, מאשרים, ולוחצים על 'מסנן חדש'(אני נתתי לה שם 'לטלפון' וע"פ זה הקוד להלן)
מעתה, כל מייל חדש שיגיע למייל שלכם יקבל גם תווית.
שלב ה: הקוד וטריגר להפעלה
עכשיו צריך להכניס את הקוד לגוגל סקריפט שיעשה את כל הפעולות ויכניס את המייל למערכת
נכנסים לכאן פותחים 'פרויקט חדש' בצד ימין, נפתח פרויקט חדש עם קטע קוד. מוחקים את הקוד הקיים ומדביקים את הקוד הבאאם המערכת בשרת הפריוט
function mailToPhone() { const url = ('https://private.call2all.co.il/ym/api/'); const token = ('0734567890:1234'); const path = ('ivr2:1/'); const listTzintuk = ('tzl:123'); const label = GmailApp.getUserLabelByName('לטלפון'); let didUpload = false chechForGmails() function chechForGmails() { const threads = GmailApp.search('label:לטלפון'); for (const thread of threads) { const messages = thread.getMessages(); const minuteAgo = new Date(Date.now() - 60000); if (thread.getLastMessageDate() > minuteAgo) { for (const message of messages) { if (message.getDate() > minuteAgo) { const result = sendToYemot(message); didUpload = result || didUpload; } } thread.removeLabel(label); } else { const result = sendToYemot(messages[messages.length - 1]); didUpload = result || didUpload; thread.removeLabel(label); } } if(didUpload === true){ const tzintuk = UrlFetchApp.fetch(`${url}RunTzintuk?token=${token}&phones=${listTzintuk}`); Logger.log(tzintuk) } } function sendToYemot (message) { const ttsString = `הודעה מאת. ${message.getFrom()}. ,נושא,. ${message.getSubject()}. גוף ההודעה. ${message.getPlainBody()}`; Logger.log({ ttsString }); const directoryListing = JSON.parse(UrlFetchApp.fetch(`${url}GetIVR2Dir?token=${token}&path=${path}`)); Logger.log(directoryListing) if (directoryListing.responseStatus === 'OK') { const lastFileName = directoryListing.files .filter(file => file.fileType === 'AUDIO' || file.fileType === 'TTS') .map(file => file.name.split('.')[0]) .find(fileName => !isNaN(fileName)); const newFileNumber = Number(lastFileName || -1) + 1; const newFileName = newFileNumber.toString().padStart(3, '0'); const newFilePath = `${path}${newFileName}.tts`; const payload = { token, what: newFilePath, contents: ttsString }; const uploadResult = JSON.parse(UrlFetchApp.fetch(url + 'UploadTextFile?', { payload })); return uploadResult.responseStatus === 'OK'; } } }
אם המערכת בשרת הרגיל
function mailToPhone() { const url = ('https://www.call2all.co.il/ym/api/'); const token = ('0734567890:1234'); const path = ('ivr2:1/'); const listTzintuk = ('tzl:123'); const label = GmailApp.getUserLabelByName('לטלפון'); let didUpload = false chechForGmails() function chechForGmails() { const threads = GmailApp.search('label:לטלפון'); for (const thread of threads) { const messages = thread.getMessages(); const minuteAgo = new Date(Date.now() - 60000); if (thread.getLastMessageDate() > minuteAgo) { for (const message of messages) { if (message.getDate() > minuteAgo) { const result = sendToYemot(message); didUpload = result || didUpload; } } thread.removeLabel(label); } else { const result = sendToYemot(messages[messages.length - 1]); didUpload = result || didUpload; thread.removeLabel(label); } } if(didUpload === true){ const tzintuk = UrlFetchApp.fetch(`${url}RunTzintuk?token=${token}&phones=${listTzintuk}`); Logger.log(tzintuk) } } function sendToYemot (message) { const ttsString = `הודעה מאת. ${message.getFrom()}. ,נושא,. ${message.getSubject()}. גוף ההודעה. ${message.getPlainBody()}`; Logger.log({ ttsString }); const directoryListing = JSON.parse(UrlFetchApp.fetch(`${url}GetIVR2Dir?token=${token}&path=${path}`)); Logger.log(directoryListing) if (directoryListing.responseStatus === 'OK') { const lastFileName = directoryListing.files .filter(file => file.fileType === 'AUDIO' || file.fileType === 'TTS') .map(file => file.name.split('.')[0]) .find(fileName => !isNaN(fileName)); const newFileNumber = Number(lastFileName || -1) + 1; const newFileName = newFileNumber.toString().padStart(3, '0'); const newFilePath = `${path}${newFileName}.tts`; const payload = { token, what: newFilePath, contents: ttsString }; const uploadResult = JSON.parse(UrlFetchApp.fetch(url + 'UploadTextFile?', { payload })); return uploadResult.responseStatus === 'OK'; } } }
וכמובן משנים בשורה 3 למספר המערכת והסיסמה שלכם
נותנים לפרויקט שם כרצונכם
לוחצים על שמור.עכשיו נפעיל את הטריגר.
בתפריט הנפתחת מצד ימין לוחצים על 'מפעילים' ואז על 'הוספת טריגר',
נפתח תפריט כזוובוחרים לפי המסומן ולוחצים על שמירה
עכשיו יפתח לנו חלונית חדשה שתבקש שניכנס עם החשבון ג'ימייל שלנו, ואז יופיע אזהרה שגוגל לא אימתה את האפליקציה הזו,
נלחץ על 'מתקדם' ואז על 'כניסה אל... (לא מאובטח)'
(נציין, לאף אחד אין גישה למייל שלך חוץ מהסקריפט שאתה הבעלים עליו ואתה יכול לשנות בכל זמן)
ואז, יפתח עוד חלונית שתבקש אישור שהסקריפט יכול לשנות את המיילים וכו' ואישור על התחברות לשרת חיצוני [ימות המשיח], נאשר
(שוב, הסקריפט לא מוחק ולא משנה שום מייל! אלא שאנחנו צריכים לאשר אפשרות כזו)גמרנו, יש לנו מערכת מוכנה שתצנתק לנו כשיש מייל חדש ותקריא לנו את המיילים שקבלנו
נ.ב. לכל דבר יש חסרונות, וגם למערכת שלנו. ההקראה של טקסט בימות המשיח מוגבלת לכ-100 מילים, ולכן אם המייל שקבלתם גדול יותר, יכול להיות שהמערכת לא יקריא לכם את זה ותשמעו שגיאה [או 'המקש שהוקש שגוי' אם זה ההודעה האחרונה בשלוחה].
אפשר לנסות שוב פעם, יש פעמים שזה עוזר וזה כן מקריא אחרי שתיים שלוש הקשותבהצלחה
-
@מנצפכ אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
תקלות מצויות
- לבדוק שהוספתם תווית במייל והגדרתם שיעבור לשם הדואר הנכנס
- לבדוק שהקוד תקין א. מספר מערכת וסיסמא ב. שם התווית ג. מספר רשימת הצינתוקים ד. סוג השרת
- לבדוק שיש טריגר מופעל
- לבדוק שאישרתם גישה לגוגל
- לבדוק שמספר הפלאפון נמצא ברשימת הצינתוקים
ובכל פעם שמעלים בעיה כדאי להעלות את הקוד (בלי המספר מערכת והסיסמא) ולכתוב אם הבעיה בשמיעה של המייל או בצינתוק
:::
@אברהם-צבי אני לא פנוי כרגע לעבוד על זה אני מקווה שעזרתי לך
:::
יתכן גם בעיה שברשימת הצינטוקים יש פחות מ 2 רשומים ולכן הוא מפעיל את הצינטוק.