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

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

dabi 03-08-10 18:38

mail בלולאה או במערך? הבדל?
 
אהלן
בואו נגיד שאני שולח מייל ל 100 אנשים
כמובן שהדרך הנוחה ביותר היא דרך הפונקציה MAIL לשלוח ע"י הפרדה בפסיקים בין כל מיילים
דרך אחרת היא כמובן בלולאה לשלוח בכל קריאה לפונקציה פעם 1 ולהריץ את זה מספר פעמיים

אתם שואלים מה ההבדל?

אז בואו נגיד שאני בעל אתר בדיחות, ואני רוצה לשלוח כל יום בדיחה מסויימת במייל
עכשיו אם אני אשתמש בשיטה הראשונה אני יהיה חייב לשלוח את אותו הטקסט לכולם
ואם אני אשתמש בשיטה השניה אני יוכל לשלוח טקסט שונה לכל אחד ואחד

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

ובכלל האם זה מבזבז משאבי שרת בצורה משמעותית אם במקום לעשות MAIL ולרשום את כל המיילים בפעם אחת עם הפרדות פסיקים אני עושה את זה בלולאה?

תודה רבה

AlmogBaku 03-08-10 20:13

פסיקים יחסוף את רשימת היוזרים שלך לכל הרשימה

dabi 03-08-10 20:27

ציטוט:

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

בטוח? אז הדרך היחידה זה לשלוח בלולאה?
זה לא לוקח יותר משאבי שרת יחסית לאם אני עושה את רשימת המיילים בפסיקים?

~The_Sultan~ 03-08-10 21:14

זה לוקח יותר, כמובן שזה לא משהו קריטי, אבל אין מה לעשות אלא אם כן לא אכפת לך לחשוף את כל הרשימת מיילים

dabi 03-08-10 21:54

ציטוט:

נכתב במקור על ידי ~The_Sultan~ (פרסם 774003)
זה לוקח יותר, כמובן שזה לא משהו קריטי, אבל אין מה לעשות אלא אם כן לא אכפת לך לחשוף את כל הרשימת מיילים

השאלה אם אין שום אופציה לשלוח עם הפסיקים ושלא יראו את המיילים של כולם
הידר או משהו כזה
כיוון שאם זה לוקח יותר זמן אז אני מאמין שאם אשלח ל 500-1000 אנשים הזמן והעומס המיותר יהיה משמעותי
תודה

~The_Sultan~ 03-08-10 22:23

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

Daniel 04-08-10 10:42

אתה יכול להסתיר את רשימת המיילים בעזרת Bcc.

דוגמא מספר 4 מראה כיצד. http://www.php.net/manual/en/function.mail.php

הייתי ממליץ לך גם לעיין ב- http://mail.google.com/support/bin/a...n&answer=81126

~The_Sultan~ 04-08-10 10:45

בקשר לזה, תראה מה כתוב שם:
ציטוט:

if your mail is failing (returns false) be aware that many servers are configured to kill mail going out with a bcc or cc header.

The ideal workaround is to use the smtp functions which servers allow because of its better audit trail. Alternatively call the mail function several times.

I've just spent about four hours trying to work out what I was doing wrong!!

Daniel 04-08-10 14:02

אכן אתה מעלה הערה נכונה, למרות שאני לא בטוח עד כמה זה מקובל בארץ.

הפונקציה mail, כפי שמצויין ב-php.net, לא "מותאמת" למספר גדול של לופים. היא פותחת חיבור smtp מחדש על כל מייל.

הם ממליצים על 2 PEARים לטפל בזה,
http://pear.php.net/package/Mail
ו- http://pear.php.net/package/Mail_Queue

בהצלחה!

dabi 05-08-10 02:26

סלחו לי אבל קצת איבדתי אתכם
מה ההמלצה שלכם אז ? לשלוח במערך או בלולאה וכל פעם לקרוא לפונקציה?
לא ראיתי היכן כאן בדוגמא 4 הם מציגים להפריד עם פסיקים ושלא יראו את המיילים
והאם באמת קריאה לפונקציה כל פעם תכביד מאוד על השרת במידה ואני שולח כמות נכבדת של מיילים? 1000-2000-3000 ??


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

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