עזרה | הרצת URL בקבלת מייל
-
אני רוצה לעשות שכל פעם שמגיע מייל לתווית מסויימת ירוץ 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();
באופן הזה אפשר להשיג את האפקט הרצוי של "טריגר" לקבלת מייל, על ידי בדיקה תקופתית.
בהצלחה!