Mail List

Uval

New member
Mail List

שלום, בעת בניית מערכת מסויימת התבקשתי לבנות רשימת תפוצה ונתקלתי בבעיה. אחריכמות מסויימת של משתמים וMAIL לכולם, השרת יוצא בטיים אאוט. הפתרון שחשבתי עליו הוא חלוקת השליחה למספר דפים עם ג´אווה סקריפט שעובר, אבל אני חושב שזה לא הפיתרון האידאלי. האם יש למישהו פיתרון לעניין?
 

kensaggy

New member
כיצד...

אתה שולח את כל המכתבים? האם לכל האחד בנפרד? הוא האם נכתב אחד כאשר אתה מוסיף כל אחד ל BCC? אתה יכול לעשות חלוקה לדפים (אבל בPHP לא JS), ע"י הוסף LIMIT לשאילתת הSQL שלך.ולשלוח רק נגיד ל20-30 אנשים כל פעםץ (כמה שהשרת מספיק לפני הטיימאוט)
 

shanor

New member
מממ...

גם אני הייתי הולך לפי מה ש- KENSAGGY מציע, ואולי אפילו כדי להגדיל קצת את האפקטיביות של הדברים משתמש ב- TO למשלוח של יותר מנמען אחד (אני לא סגור על כמה אפשר - לדעתי זה תלוי בסוג שרת הדואר אבל לא בטוח בזה), ואחרי שממלאים את ה- TO בכמות הנמענים המקסימלית האפשרית, ממשיכים ל- CC, ורק אם יש צורך להשתמש גם ב- BCC. הסיבה לשימוש ב- BCC רק אם יש צורך היא מכיוון שאלו שרשומים ב- BCC לא יראו את עצמם כתובים בתוך רשימת הכתובות ועשויים לתהות איך בדיוק המייל המסויים הזה הגיע אליהם... כבר שמעתי על כמה כאלו שנבהלו כשראו שקיבלו מייל בלי הכתובת שלהם ופירמטו את המחשב כי הם "קיבלו וירוס כל כך בעייתי שאפילו האנטי וירוס שלהם לא מזהה אותו". (לכו תבינו אנשים - אבל הם צודקים....). בכל אופן, UVAL, המשך את עבודתך הנאמנה כמנהל פורום בוני האתרים, מקווה שעזרנו קצת, ובהצלחה. שנאור.
 

kensaggy

New member
לפי דעתי

צריך למלא רק את BCC. ככה כל אחד מקבל מכתב אישי (כאילו). אף לא רואה את שאר האנשים הרשומים יחד איתו. אני שמעתי כמה מקרים בהם איש עסקים אחד שלח מכתב לכל האנשים לקונים ממנו, אבל כאשר הם ראו את שאר האי מיילים הם עזבו מסיבות כמו : "אה..אם האיש הזה קונה אצלך אז אני לא רוצה (כי אני בסיכסוך איתו)" ודברים דומים. אבל אם זה לא חשוב אז אפשר כמו שאמר שנאור למלא את כל השדות (TO,CC,BCC). בהצלחה
 

Uval

New member
תודה רבה על המחמאות :)

ולדעתי עדיף BCC, כי זה יותר נחמד אבל עד PHP 4.3 (שוב, נדמה לי ) לא יכולתי לשלוח BCC כי הוא החזיר לי ERROR ובתיעוד של PHP מצויין שזה אפשרי רק בגרסה 4.3 שבזמנו עוד לא יצאה וכרגע היא בRC.
 

Uval

New member
כנס...

עד PHP 4.3 ( נדמה לי? ) לא היה אפשר לשלוח BCC והוא החזיר לי ארור לגבי ההצעה השניה, זה בדיוק מה שהתכוונתי אליו רק מעבר על ידי JS...
 

php

New member
יש פיתרון יותר אלגנטי...

כל פעם שאתה עובר בלולאת השליחת אימייל אתה יכול לקבוע זמן סיום תוכנית חדש, timeout חדש בכל פעם ! :)
set_time_limit(5); #הפקודה קובעת את הזמן תוכנית - 5 שניות​
 

shanor

New member
מממ...

נשאלת השאלה: אם אכן מגדילים את זמן הTIME OUT... אז, א. האם יש הרשאה לעשות את זה, משום שאז האתר בהנחה והוא יושב על שרת המכיל כמה אתרים במקביל, תופס או יותר נכון לוקח הרבה יותר משאבים מהמעבד ובכך בעצם מהאתרים האחרים. ב. האם זה לא יצור בעיה של מה קורה כאשר הלולאה היא אינסופית בגלל בעיה סתם טעות בהקלדת הקוד, או בעיה ביצירת/קביעת/קבלת המשתנים של הלולאה. ג. האם לא עדיף לשלוח אי מייל אחד, ובכך להקל על השרת עצמו שעושה עבודה קשה יחסית (בהנחה והוא גם זה שמוציא את המייל החוצה) ככה שבמקום לשלוח OUTPUT לתוך פורט ה- SMTP (באמצעות SENDMAIL או כל תוכנת שליחת דואר שמותקנת על השרת) מספר רב של פעמים, שולחים פעם אחד את המייל ושתוכנת השליחה כבר תדאג לעשות את ההפרדה לכל נמען. אישית אני חושב שמבחינת תיכנותית, הפתרון של שליחת מייל אחד לנמענים רבים הוא הרבה יותר אלגנטי ומוצלח מאשר לולאה ששולחת בכל פעם מייל אחד... בכל אופן זה לא ממש משנה מה הדרך שתבחר לעבוד בה כל עוד היא עובדת ועושה את עבודתה ביעילות מספקת בשביל המטלה שאותה היא צריכה לבצע ובמסגרת המשאבים הנתונים לך. בברכה שנאור.
 

php

New member
יש הרשאה לזה, זאת כמו פונקציה רגילה

אם הדאגה הוא לשרת שלך, אז אפשר לתת לו "לנוח" בין מיל למיל. עם sleep אני לא חושב שזה יעמיס על השרת.
 

nirdagan

New member
אם אתה שולח אותו מכתב לכולם

שים את כל הרשימה בכותר bcc של הודעת המייל.
 

matroz

New member
it´s possible

i have a php script which runs and sends 5.9 milion mails each time. what you have to do for the script to run correctly is this: add this at the begining of the code for the script to wait till the mail server is ready to get new messages. set_time_limit(0); i have converted the script to run as command line (more stable), you should try doing so. your script should be optimized for performance, so don´t do: for(i=0;i<count(mails);i++) which is the worst code that you could write and is a bad programming in general. check that php is not limited with low memory useage (check php.ini). there are other server related changes need to be done in order to send a latge amount of mails, but this is not the case here. if you need further help, let me know. matty
 

Uval

New member
תראה, בשרת הביתי שעליו אני בונה את

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

matroz

New member
not correct

you say that you are going to use a proffesional hosting comapny, than what´s the problem ? you have 2 options: 1. if you really want to be able to use your site to do this kind of activity you should use a dedicated server (starting from $80/month), where you will have full control/access to the computer. 2. on every big hosting company you will be able to set cron jobs from a web interface. so you´ll have to upload the file and set it to run. different hosts will give you different solutions. how big is your mailing list ? how often do you want to send the list mails ? most of the hosting companies will give you MajorDomo for free, which probably the best solution for you. this perl based program will take care of everything for you. matty matty
 
למעלה