הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאלה על מערכת תפוצה (https://hosts.co.il/forums/showthread.php?t=25615)

x-ray 04-07-06 12:25

שאלה על מערכת תפוצה
 
האם יש אפשרות לשלוח מייל לכמה כתובות במכה אחת? (ע"י הפונקציה מייל).
ואם לא אז הדרך שאני חושב עליה היא ע"י לולאה שלוקחת בכל פעם כתובת אחת ושולחת אליה את ההודעה,אבל האם זה לא ייצור עומס על השרת לשלוח הודעות ל1000 אנשים בלולאה?

Ori The Man 04-07-06 12:27

לולאה תיצור עומס
אבל לפי דעתי אפשרי ע"י לולאה

x-ray 04-07-06 12:29

ציטוט:

נכתב במקור על ידי Ori The Man
לולאה תיצור עומס
אבל לפי דעתי אפשרי ע"י לולאה

איזה דרך יש עוד חוץ מלולאה? (אלא אם אפשר להכניס מספר נמענים בתוך הפונקציה מייל..)

---עריכה---

אם אני אשתמש במערך ואז אשלוף ממנו ע"י foreach זה יקח פחות משאבים מהשרת מאשר לולאת while ?

Ori The Man 04-07-06 12:34

יש מצב שיקח פחות :)
יש אפשרות אולי לישלוח עם smtp
וצריך להכניס משהו כמו 100 אי מיילים וליראות איך זה שולח עם while ואחרי זה עם foreach
וכמובן הכל ע"י משיכה מבסיס נתונים

x-ray 04-07-06 12:35

אבל מצד שני אם אני אשתמש בforeach יש פה ניצול כפול ל משאבים,בפעם הראשונה להכניס הכל למערך ע"י שימוש בwhile ואז להשתמש בforeach על המערך...

בניה 04-07-06 12:56

ב"ה


אמרו פה פעם שאפשר להכניס כמה כתובות מופרדות בפסיקים.
ובמנואל כתוב שזה ככה.

-VladK- 04-07-06 13:06

קיצור בכל מקרה צריך לעשות לולאה...

eLad 04-07-06 13:07

ציטוט:

נכתב במקור על ידי x-ray
האם יש אפשרות לשלוח מייל לכמה כתובות במכה אחת? (ע"י הפונקציה מייל).
ואם לא אז הדרך שאני חושב עליה היא ע"י לולאה שלוקחת בכל פעם כתובת אחת ושולחת אליה את ההודעה,אבל האם זה לא ייצור עומס על השרת לשלוח הודעות ל1000 אנשים בלולאה?

זה די ידפוק את השרת ויעמיס עליו. מה גם שסביר להניח שכמות האנשים שייקבלו את המייל תשאף ל 0. למה? בגלל מנגנוני ה anti-spam שקיימים ברוב השרתים (במיוחד בספקיות ובשירותי הדוא"ל החינמיות - walla, hotmail, gmail, yahoo וכו').

למשל - ברגע שיש לך ברשימה 50 כתובות של נטוויז'ן (הגיוני, כולה 5%), המערכת שלהם תזהה שמאותה כתובת מייל (או מאותו IP של השרת, ע"י ה header של המייל) נשלח אותו מייל בדיוק ל 50 איש- כלומר, סביר להניח שאתה ספאמר ותחסום אוטומטית את השליחה.

מה עושים במקרה כזה? מפרקים את השליחה - 5 מיילים בחצי דקה (כדי להפחית עומס על השרת וכדי למנוע חסימה).

יש לך 1000 מיילים לשלוח? אין שום בעיה. חצי דקה ראשונה תשלח 1-5 (הפעולה תארך בקושי שנייה, כולה 5 מיילים שאתה תוקע ב bcc או תעשה לולאה ותשלח לכל אחד), חצי דקה שנייה 6-10, אח"כ 11-15 וכו'. סה"כ 100 דק' לשלוח ל 1000 איש, כמעט שעתיים - אתה יכול להגדיר במשימה מתוזמנת או פשוט אתה מפעיל את הסקריפט ומשאיר אותו פתוח שעתיים.

את פעולת העברת העמודים אפשר לבצע ברמת צד שרת (אחרי 30 שניות לעשות redirect) או ברמת צד לקוח - בעזרת JS ושימוש ב setTimeOut או בעזרת metatag שאתה מגדיר להם מעבר ל: sendmail.aspx?start=6 (כלומר, המערכת תדע להתחיל מ 6, תספור 5, תגיע ל 10 ואז תגדיר ל start שיתחיל מ 10 פלוס 1, כלומר 11 וכך הלאה)..

x-ray 04-07-06 13:08

ציטוט:

נכתב במקור על ידי DreaMonster
קיצור בכל מקרה צריך לעשות לולאה...

לולאה חייב בכל מקרה כדי להכניס את כל הכתובות מופרדות בפסיקים למשתנה אחד (לפי מה שבניה אמר זה אפשרי)

eLad 04-07-06 13:09

ציטוט:

נכתב במקור על ידי x-ray
לולאה חייב בכל מקרה כדי להכניס את כל הכתובות מופרדות בפסיקים למשתנה אחד (לפי מה שבניה אמר זה אפשרי)

אין טעם.. חוסר יעילות וזה גם יגרום לחסימה של המייל ויזהה אותך ואת השרת הנחמד שלך כספאמרים. תקרא את ההודעה שלי למעלה. |כאן..שם|


כל הזמנים הם GMT +2. הזמן כעת הוא 10:54.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ