עזרה | הרצת URL בקבלת מייל
-
אני רוצה לעשות שכל פעם שמגיע מייל לתווית מסויימת ירוץ URL עם פרטי ההודעה
כמו https://www.abc.com/mail.php?name=שם השולח&mail=כתובת המייל של השולח=&title=כותרת המייל&body=תוכן המייל&
ולאחר מכן ההודעה תמחק
אם אפשר לתת לי קוד גוגל סקריפט שעושה את זה, זה יעזור לי מאוד -
אני רוצה לעשות שכל פעם שמגיע מייל לתווית מסויימת ירוץ URL עם פרטי ההודעה
כמו https://www.abc.com/mail.php?name=שם השולח&mail=כתובת המייל של השולח=&title=כותרת המייל&body=תוכן המייל&
ולאחר מכן ההודעה תמחק
אם אפשר לתת לי קוד גוגל סקריפט שעושה את זה, זה יעזור לי מאוד@kavkosher ניסת GPT ?
// הפונקציה הזו תופעל כאשר יש עדכון בתיקיית הכניסה של Gmail
function onGmailMessage(e) {
// הופך את ההודעה לאובייקט מסוג "מייל"
var message = e.gmail.message;// משיג את פרטי המייל
var senderName = message.getFrom();
var senderEmail = message.getReplyTo();
var mailTitle = message.getSubject();
var mailBody = message.getPlainBody();// בניית ה-URL
var apiUrl = "https://www.abc.com/mail.php";
var url = apiUrl + "?name=" + encodeURIComponent(senderName) + "&mail=" + encodeURIComponent(senderEmail) + "&title=" + encodeURIComponent(mailTitle) + "&body=" + encodeURIComponent(mailBody);// שליחת בקשת GET ל-URL
UrlFetchApp.fetch(url);// מחיקת הודעה
message.moveToTrash();
}
function processInbox() { // קבל את תווית המייל שאליה אתה רוצה לסנן var label = GmailApp.getUserLabelByName("רלוונטית"); // קבל את כל ההודעות עם התווית הזו var threads = label.getThreads(); // עבור על כל ההודעות threads.forEach(function(thread) { // קבל את ההודעה האחרונה בשרשור var message = thread.getMessages()[0]; // הוצא פרטים מההודעה var sender = message.getFrom(); var subject = message.getSubject(); var body = message.getPlainBody(); // בנה URL עם הפרטים var url = "https://www.abc.com/mail.php?name=" + encodeURIComponent(sender) + "&title=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(body); // פנה ל-URL (לדוגמה בפונקציית UrlFetchApp) UrlFetchApp.fetch(url); // מחק את ההודעה thread.moveToTrash(); }); }
הקוד:
- סונן הודעות לפי תווית מסוימת
- עובר על כל הודעה ומוציא ממנה פרטים
- בונה URL עם הפרטים
- פונה ל-URL כדי לעבד את המידע
- מוחק את ההודעה
כמובן שתצטרך להתאים את שם התווית, כתובת ה-URL ושאר הפרטים.
בהצלחה!
אכן נכון, לא ניתן להגדיר טריגר שיופעל כאשר מתקבל מייל חדש.
אבל אפשר לעשות זאת בדרך שהצעת - להריץ פונקציה כל פרק זמן (למשל כל דקה כמו שאמרת) שתבדוק אם יש מיילים חדשים עם התווית הרצויה, ואז לבצע את הפעולות הרצויות.
למשל:
function checkEmails() { // בדוק אם יש מיילים חדשים עם התווית הרלוונטית var threads = GmailApp.getUserLabelByName("חשוב").getThreads(); // אם יש מיילים חדשים if (threads.length > 0) { // עבור על המיילים ועשה את מה שצריך // (כמו בדוגמה הקודמת ששלחתי) } }
ואז להגדיר טריגר שיופעל כל דקה:
ScriptApp.newTrigger('checkEmails') .timeBased() .everyMinutes(1) .create();
באופן הזה אפשר להשיג את האפקט הרצוי של "טריגר" לקבלת מייל, על ידי בדיקה תקופתית.
בהצלחה!
-
@kavkosher ניסת GPT ?
// הפונקציה הזו תופעל כאשר יש עדכון בתיקיית הכניסה של Gmail
function onGmailMessage(e) {
// הופך את ההודעה לאובייקט מסוג "מייל"
var message = e.gmail.message;// משיג את פרטי המייל
var senderName = message.getFrom();
var senderEmail = message.getReplyTo();
var mailTitle = message.getSubject();
var mailBody = message.getPlainBody();// בניית ה-URL
var apiUrl = "https://www.abc.com/mail.php";
var url = apiUrl + "?name=" + encodeURIComponent(senderName) + "&mail=" + encodeURIComponent(senderEmail) + "&title=" + encodeURIComponent(mailTitle) + "&body=" + encodeURIComponent(mailBody);// שליחת בקשת GET ל-URL
UrlFetchApp.fetch(url);// מחיקת הודעה
message.moveToTrash();
}
function processInbox() { // קבל את תווית המייל שאליה אתה רוצה לסנן var label = GmailApp.getUserLabelByName("רלוונטית"); // קבל את כל ההודעות עם התווית הזו var threads = label.getThreads(); // עבור על כל ההודעות threads.forEach(function(thread) { // קבל את ההודעה האחרונה בשרשור var message = thread.getMessages()[0]; // הוצא פרטים מההודעה var sender = message.getFrom(); var subject = message.getSubject(); var body = message.getPlainBody(); // בנה URL עם הפרטים var url = "https://www.abc.com/mail.php?name=" + encodeURIComponent(sender) + "&title=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(body); // פנה ל-URL (לדוגמה בפונקציית UrlFetchApp) UrlFetchApp.fetch(url); // מחק את ההודעה thread.moveToTrash(); }); }
הקוד:
- סונן הודעות לפי תווית מסוימת
- עובר על כל הודעה ומוציא ממנה פרטים
- בונה URL עם הפרטים
- פונה ל-URL כדי לעבד את המידע
- מוחק את ההודעה
כמובן שתצטרך להתאים את שם התווית, כתובת ה-URL ושאר הפרטים.
בהצלחה!
אכן נכון, לא ניתן להגדיר טריגר שיופעל כאשר מתקבל מייל חדש.
אבל אפשר לעשות זאת בדרך שהצעת - להריץ פונקציה כל פרק זמן (למשל כל דקה כמו שאמרת) שתבדוק אם יש מיילים חדשים עם התווית הרצויה, ואז לבצע את הפעולות הרצויות.
למשל:
function checkEmails() { // בדוק אם יש מיילים חדשים עם התווית הרלוונטית var threads = GmailApp.getUserLabelByName("חשוב").getThreads(); // אם יש מיילים חדשים if (threads.length > 0) { // עבור על המיילים ועשה את מה שצריך // (כמו בדוגמה הקודמת ששלחתי) } }
ואז להגדיר טריגר שיופעל כל דקה:
ScriptApp.newTrigger('checkEmails') .timeBased() .everyMinutes(1) .create();
באופן הזה אפשר להשיג את האפקט הרצוי של "טריגר" לקבלת מייל, על ידי בדיקה תקופתית.
בהצלחה!
@K-O-G זה חירטוט מוצלח..
@kavkosher א"א להפעיל טריגר לפי קבלת מייל,
אתה יכול להפעיל כל דקה נניח, פונקציה שתבדוק האם יש מייל חדש...הייתי עושה לך את הקוד, אבל נראה לי שלא יהיה לי פנאי לזה, אם תהיה מעוניין בתשלום סמלי תשלח לי בפרטי
-
@kavkosher ניסת GPT ?
// הפונקציה הזו תופעל כאשר יש עדכון בתיקיית הכניסה של Gmail
function onGmailMessage(e) {
// הופך את ההודעה לאובייקט מסוג "מייל"
var message = e.gmail.message;// משיג את פרטי המייל
var senderName = message.getFrom();
var senderEmail = message.getReplyTo();
var mailTitle = message.getSubject();
var mailBody = message.getPlainBody();// בניית ה-URL
var apiUrl = "https://www.abc.com/mail.php";
var url = apiUrl + "?name=" + encodeURIComponent(senderName) + "&mail=" + encodeURIComponent(senderEmail) + "&title=" + encodeURIComponent(mailTitle) + "&body=" + encodeURIComponent(mailBody);// שליחת בקשת GET ל-URL
UrlFetchApp.fetch(url);// מחיקת הודעה
message.moveToTrash();
}
function processInbox() { // קבל את תווית המייל שאליה אתה רוצה לסנן var label = GmailApp.getUserLabelByName("רלוונטית"); // קבל את כל ההודעות עם התווית הזו var threads = label.getThreads(); // עבור על כל ההודעות threads.forEach(function(thread) { // קבל את ההודעה האחרונה בשרשור var message = thread.getMessages()[0]; // הוצא פרטים מההודעה var sender = message.getFrom(); var subject = message.getSubject(); var body = message.getPlainBody(); // בנה URL עם הפרטים var url = "https://www.abc.com/mail.php?name=" + encodeURIComponent(sender) + "&title=" + encodeURIComponent(subject) + "&body=" + encodeURIComponent(body); // פנה ל-URL (לדוגמה בפונקציית UrlFetchApp) UrlFetchApp.fetch(url); // מחק את ההודעה thread.moveToTrash(); }); }
הקוד:
- סונן הודעות לפי תווית מסוימת
- עובר על כל הודעה ומוציא ממנה פרטים
- בונה URL עם הפרטים
- פונה ל-URL כדי לעבד את המידע
- מוחק את ההודעה
כמובן שתצטרך להתאים את שם התווית, כתובת ה-URL ושאר הפרטים.
בהצלחה!
אכן נכון, לא ניתן להגדיר טריגר שיופעל כאשר מתקבל מייל חדש.
אבל אפשר לעשות זאת בדרך שהצעת - להריץ פונקציה כל פרק זמן (למשל כל דקה כמו שאמרת) שתבדוק אם יש מיילים חדשים עם התווית הרצויה, ואז לבצע את הפעולות הרצויות.
למשל:
function checkEmails() { // בדוק אם יש מיילים חדשים עם התווית הרלוונטית var threads = GmailApp.getUserLabelByName("חשוב").getThreads(); // אם יש מיילים חדשים if (threads.length > 0) { // עבור על המיילים ועשה את מה שצריך // (כמו בדוגמה הקודמת ששלחתי) } }
ואז להגדיר טריגר שיופעל כל דקה:
ScriptApp.newTrigger('checkEmails') .timeBased() .everyMinutes(1) .create();
באופן הזה אפשר להשיג את האפקט הרצוי של "טריגר" לקבלת מייל, על ידי בדיקה תקופתית.
בהצלחה!