מדריך | שמיעת המיילים בטלפון + צינתוק
-
-
האם מישהו הצליח בשליחת מיילים
@תודה-רבה-5 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
רק לידיעתכם יש קוד גם לשליחת מיילים (אבל זה לאפלקציה לא מאובטחת) כאן
לי הוא אומר שגיאה (אישרתי בהתראת אבטחה שזה אני ועדיין יש שגיאה)
-
האם מישהו הצליח בשליחת מיילים
@תודה-רבה-5 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
רק לידיעתכם יש קוד גם לשליחת מיילים (אבל זה לאפלקציה לא מאובטחת) כאן
לי הוא אומר שגיאה (אישרתי בהתראת אבטחה שזה אני ועדיין יש שגיאה)
@אחד-מאנש אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
האם מישהו הצליח בשליחת מיילים
@תודה-רבה-5 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
רק לידיעתכם יש קוד גם לשליחת מיילים (אבל זה לאפלקציה לא מאובטחת) כאן
לי הוא אומר שגיאה (אישרתי בהתראת אבטחה שזה אני ועדיין יש שגיאה)
ברוך השם זה הצליח (צריך לאשר עוד פעם ועוד פעם שזה אני)
-
@אחד-מאנש אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
האם מישהו הצליח בשליחת מיילים
@תודה-רבה-5 אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
רק לידיעתכם יש קוד גם לשליחת מיילים (אבל זה לאפלקציה לא מאובטחת) כאן
לי הוא אומר שגיאה (אישרתי בהתראת אבטחה שזה אני ועדיין יש שגיאה)
ברוך השם זה הצליח (צריך לאשר עוד פעם ועוד פעם שזה אני)
-
@אחד-מאנש אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
ברוך השם זה הצליח (צריך לאשר עוד פעם ועוד פעם שזה אני)
לא נכון לומר שצריך לאשר שוב ושוב אלא פשוט צריך לאשר גםפה וגם פה.
מקור@avrumi אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@אחד-מאנש אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
ברוך השם זה הצליח (צריך לאשר עוד פעם ועוד פעם שזה אני)
לא נכון לומר שצריך לאשר שוב ושוב אלא פשוט צריך לאשר גםפה וגם פה.
מקוראישרתי את שניהם ואח"כ הוא אמר שגיאה ושלח התראת אבטחה ואפילו שאישרתי שזה אני זה לא עזר עד שנכנסתי ללשונית אבטחה ושמה אישרתי שזה אני
-
ורציתי לשאול עוד משהו אני כל פעם שומע את המייל עם כל מיני אותיות באנגלית (משהו בסיגנון H T P לוכסן לוכסן) האם יש מה לעשות לזה)
עריכה: עכשיו הבנתי מה זה פשוט כשכתוב מתמחים טופ הוא קורא את כתובת האתר (https://mitmachim.top )
ואם כבר אז כבר- מה לגבי לעשות תשובה למייל שהתקבל? -
-
אני עוד פעם שואל האם מישהו יודע איך להחריג מהצינטוקים את קידומי מכירות (זה די דחוף לי כי אני התחלתי הרבה להשתמש לשמוע מיילים דרך הטלפון בלי לפתוח מחשב אבל יש לי הרבה צינטוקים על דברים שמגיעים לקידומי מכירות-ואני צריך אותם אבל לא בכדי שיעשה לי צינטוק)
-
@אחד-מאנש צריך פשוט לשנות את שאילתת החיפוש בשורה 11 כך שלא תכלול את קטגוריית קידומי מכירות:
label:לטלפון -category:promotions
-
@צדיק-תמים
שורה 11 אצלי ריקה האם להוסיף שמה?
עריכה: הוספתי והפעלתי וזה התוצאה
שגיאת תחביר: SyntaxError: Unexpected token ':' שורה: 11 קובץ: קוד.gs -
@אחד-מאנש דיברתי על שורה 11 בקוד שבפוסט הראשון כאן למעלה
זה:const threads = GmailApp.search('label:לטלפון');
לשנות לזה:
const threads = GmailApp.search('label:לטלפון -category:promotions');
@צדיק-תמים אני עשיתי את הקוד השני שהביאו כאן מה אני צריך לשנות שמה
function mailToPhone() { // משתנים לעריכת המשתמש const number = '**********' // :מספר המערכת const pass = '******' // :סיסמא const tag = 'ToPhone' // :שם התווית const extension = '1' // :מס' השלוחה להשמעה const tzl = '123' // :מספר רשימת צינתוקים const server = 'private' // :שרת 'www' לשרת רגיל 'private' לשרת פרייוט // עד כאן משתנים לעריכת המשתמש // משתנים לניסוח const cnsender = 'הודעה מאת' const cnto = 'אל' const cnsubject = ',נושא,' const cnbody = 'גוף ההודעה' const cnend = 'סוף ההודעה' // עד כאן משתנים לניסוח const url = ('https://' + server + '.call2all.co.il/ym/api/'); const token = (number + ':' + pass); const path = ('ivr2:' + extension + '/'); const listTzintuk = ('tzl:' + tzl); const label = GmailApp.getUserLabelByName(tag); let didUpload = false chechForGmails() function chechForGmails() { const threads = GmailApp.search('label:' + tag); 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) { body = message.getPlainBody() body = body.replace(/\s{2,}/g, ' ') body = body.substring(0,2200) + cnend body = body.replace(new RegExp(`"|>|<`, 'g',), '') const ttsString = `${cnsender}. ${message.getFrom()}. ${cnto}. ${message.getTo()}. ${cnsubject}. ${message.getSubject()}. ${cnbody}. ${body}`; 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 number = '**********' // :מספר המערכת const pass = '******' // :סיסמא const tag = 'ToPhone' // :שם התווית const extension = '1' // :מס' השלוחה להשמעה const tzl = '123' // :מספר רשימת צינתוקים const server = 'private' // :שרת 'www' לשרת רגיל 'private' לשרת פרייוט // עד כאן משתנים לעריכת המשתמש // משתנים לניסוח const cnsender = 'הודעה מאת' const cnto = 'אל' const cnsubject = ',נושא,' const cnbody = 'גוף ההודעה' const cnend = 'סוף ההודעה' // עד כאן משתנים לניסוח const url = ('https://' + server + '.call2all.co.il/ym/api/'); const token = (number + ':' + pass); const path = ('ivr2:' + extension + '/'); const listTzintuk = ('tzl:' + tzl); const label = GmailApp.getUserLabelByName(tag); let didUpload = false chechForGmails() function chechForGmails() { const threads = GmailApp.search('label:' + tag); 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) { body = message.getPlainBody() body = body.replace(/\s{2,}/g, ' ') body = body.substring(0,2200) + cnend body = body.replace(new RegExp(`"|>|<`, 'g',), '') const ttsString = `${cnsender}. ${message.getFrom()}. ${cnto}. ${message.getTo()}. ${cnsubject}. ${message.getSubject()}. ${cnbody}. ${body}`; 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'; } } }
-
עריכה:
בגלל שהקודם כאן גורמים לחסימת גוגל סקריפט מחקתי את הקוד הקודם
אפשר לראות את הקובץ החדש שבניתי כאן https://mitmachim.top/post/500897 -
@אחד-מאנש עכשיו כשאני עובר יותר על הקוד אני רואה שאי אפשר לעשות את זה ככה, זה ישלח לך את המיילים שוב ושוב...
תשנה חזרה, ותשנה פה:const threads = GmailApp.search('label:' + tag);
ל:
const threads = GmailApp.search('label:' + tag + '-category:promotions');
-
@אחד-מאנש עכשיו כשאני עובר יותר על הקוד אני רואה שאי אפשר לעשות את זה ככה, זה ישלח לך את המיילים שוב ושוב...
תשנה חזרה, ותשנה פה:const threads = GmailApp.search('label:' + tag);
ל:
const threads = GmailApp.search('label:' + tag + '-category:promotions');
@צדיק-תמים אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@אחד-מאנש עכשיו כשאני עובר יותר על הקוד אני רואה שאי אפשר לעשות את זה ככה, זה ישלח לך את המיילים שוב ושוב...
תשנה חזרה, ותשנה פה:const threads = GmailApp.search('label:' + tag);
ל:
const threads = GmailApp.search('label:' + tag + '-category:promotions');
מאז ששינתי את זה זה לא נותן בכלל צינטוקים
-
@צדיק-תמים אמר במדריך | שמיעת המיילים בטלפון + צינתוק:
@אחד-מאנש עכשיו כשאני עובר יותר על הקוד אני רואה שאי אפשר לעשות את זה ככה, זה ישלח לך את המיילים שוב ושוב...
תשנה חזרה, ותשנה פה:const threads = GmailApp.search('label:' + tag);
ל:
const threads = GmailApp.search('label:' + tag + '-category:promotions');
מאז ששינתי את זה זה לא נותן בכלל צינטוקים
-
ב"ה
תמיד רציתם לשמוע את המייל שלכם בטלפון ללא צורך בגישה כל פעם למחשב?
הנה הפיתרון!!בעזרת המדריך הזה תוכלו גם אתם לשמוע את המייל דרך הטלפון בהקראה אוטומטית וגם לקבל צינתוק כשהגיע מייל חדש
נחלק את זה לכמה שלבים כדי להקל על ההבנה
נתחיל עם המערכת
שלב א: קודם כל צריך להיות ברשותכם מערכת תוכן של חברת "ימות המשיח"
(באם אין לכם עדיין, התקשרו ל-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 מילים, ולכן אם המייל שקבלתם גדול יותר, יכול להיות שהמערכת לא יקריא לכם את זה ותשמעו שגיאה [או 'המקש שהוקש שגוי' אם זה ההודעה האחרונה בשלוחה].
אפשר לנסות שוב פעם, יש פעמים שזה עוזר וזה כן מקריא אחרי שתיים שלוש הקשותבהצלחה