508
צפיות
צפיות
15
תשובות
תשובות
מיילים דרך אתר, בעברית + אנגלית
שלום לכולם,
עד היום הסתבכתי בצורה אינסופית עם שליחת מיילים לגולשים דרך האתר שלי.
אני משתמש ב-CDONTS, וכשאני מנסה לשלוח מיילים:
1. או שהעברית הפוכה, או שהאנגלית הפוכה,
ואני צריך לפתוח תגית <div dir=rtl> או <div dir=ltr>, כל פעם שאני כותב מילה בשפה שונה…
2. אחרי שסוף סוף השתלטתי על בעיית העברית והאנגלית עם מיליון ואחת DIV-ים,
כל המספרים יצאו הפוך, ואת זה כבר לא הצלחתי לסדר!
3. לא מצאתי דרך נורמלית לצרף קבצים כמו שצריך.
האם מישהו יכול להושיע?…
15 תשובות
למה להסתבך? הפתרון פשוט (קוד דוגמא)
סבלתי מהבעיה זמן רב עד שהחלטתי לחפש פתרון.
הפתרון היחידי שמצאתי הוא להמיר את תוכן ההודעה ליוניקוד ואז להשתמש בפונקציה Server.HTMLEncode ולאחר מכן להמיר את תווי ה-HTML (<>) ועוד כמה לתגים האמיתיים שלהם על מנת שיתקבל קוד HTML תקני.
הנה קוד דוגמא פשוט:
<%msgBody = "<span style=""font-size:12px;font-family:Arial;"">סתם טקסט עם אנגלית – bla bla 123</span>"
Set Mail = Server.CreateObject("CDONTS.NewMail")
With Mail
.From = "[email protected]"
.To = "[email protected]"
.MailFormat = 0
.BodyFormat = 0
.SetLocaleIDs "65001"
.Subject = "סתם נושא"
.Body = DoHTML(Server.HTMLEncode(msgBody))
.Send
End With
Set Mail = Nothing
Function DoHTML(str)
If Len(str) = 0 or IsNull(str) Then Exit Function
str = Replace(str,"<","<")
str = Replace(str,">",">")
str = Replace(str,""","""")
str = Replace(str,"&","&")
DoHTML = str
End Function
%>
גם אחרים נתקלו בבעיה זו והפתרון היחידי שמצאו הוא לעיל.
לא פתר את הבעיה…
אהלן,
הקוד שהוספת לא פתר את הבעיה,
אלא שהמיילים מגיעים עכשיו והם בלתי קריאים, כיוון שעכשיו אפשר לראות את קוד ה-HTML שתוכנת הדואר לא ידעה להבין.
לפי דוגמת הקוד שהבאת, ככה נראה המייל עצמו:
<span style=""font-size:12px;font-family:Arial;"">סתם טקסט עם אנגלית – bla bla 123</span>
(עם כל התגיות).
בנוסף, עוד לא מצאתי פיתרון לצירוף קבצים…
זה ברור
שאימייל לא יהיה ממש קריא בתוכנה שלא יכולה להציג אימיילי HTML.
הקוד עובד וזה בדוק ב-100% ועזר למספר אנשים בעבר.
אתה יכול לשלוח את האימייל בפורמט טקסט וללא HTML.
בנוגע לצירוף קבצים
מה בדיוק לא הצליח לך? קיבלת שגיאה? כיצד ניסית לצרף קובץ לאימייל?
שליחת מייל לרשימת תפוצה ענקית
שלום לכולם,
אני שולח דרך האתר שלי מיילים לרשימת התפוצה של האתר שמונה מספר אלפי כתובות מייל.
את כולם אני רושם ב-BCC.
1. מה עדיף? לשלוח מייל אחד כשכל הרשימה ב-BCC, או לחלק את השליחה למספר מיילים, שבכל אחד כמות מסויימת של נמענים.
אם עדיף לחלק – לכמה נמענים למייל לעשות את החלוקה?
2. משום מה, דווקא באאוטלוק שלי, כשמגיע מייל שאני שולח לרשימת תפוצה, הוא אוטומטית עובר ל-Deleted Items.
אני לא הגדרתי שום כלל ספציפי / כלל דואר זבל. מה הסיבה שזה קורה?
ואיך אני יכול לדאוג שזה לא יקרה למשתמשים נוספים?
בתודה מראש (חג שמח! :))
אפילו אאוטלוק לא קורא את זה
אפילו תוכנת האאוטלוק קוראת את המייל כטקסט, ולא כ-HTML…
צירוף קובץ תמונה שיוצג בהודעה
ניסיתי כל מיני קטעי קוד מאתרים שונים, לצירוף קבצים למייל.
הכוונה שלי הייתה,
לצרף תמונה שבקוד ה-HTML של ההודעה, אני אוכל להציג אותה (במקום להציג לינק למקום אחר ברשת).
לא הצלחתי עד עכשיו לעשות את זה עם CDONTS.NewMail.
זה אפשרי?
אז איך לי הוא קורא אותו ?
שלחתי את הקוד שכתבתי לדוגמא ומקבל אותו מצוין.
תשובה
1. תפצל את הרשימה שלך ל-5 אנשים על מנת שההודעה שאתה שולח לא תחשב כספאם (חלקי).
2. בנוגע לשאלות בקשר ליישומים במחשב, פנה לפורום "תמיכה טכנית".
3. להבא, שרשר שאלותיך.
עדכון RecordSet
שלום לכולכם,
אני עובד עם אובייקט ADODB.RecordSet, כדי לשלוף נתונים מטבלאות ולעדכן אותן.
בהנחה שהשליפה מתבצעת ע"י
RS.Open SQL, Conn, 2, 2
אז כשאני אבצע:
RS("Field1") = "ערך חדש"
RS("Field2") = "ערך חדש"
RS.Update
הרשומה תעודכן ב-DB.
לעומת זאת, אם ה-SQL שלף נתונים מכמה טבלאות במקביל, למשל:
SQL = "SELECT * FROM Table1, Table2 Where Table1_ID=Table2_ID"
אז פקודת Update לא עובדת יותר, בטענה ש-ADODB.RecordSet לא יודע לעדכן כמה טבלאות במקביל.
יש לכם פיתרון סביר לבעיה הזאת?
(במקום להיכנס טבלה-טבלה, ולעדכן בנפרד כל דבר…)
מיילים, אאוטלוק ושרשורים
5 הודעות זה המקסימום לדעתך?
כי זה אומר שהשרת יצטרך לשלוח מאות מיילים…
לגבי היישומים, לא הבנת את השאלה שלי.
אצלי באאוטלוק, המיילים שאני שולח מגיעים ישירות ל-Deleted Items, בלי שהגדרתי כלום.
זה אומר שיכול להיות שמשתמשים אחרים ברשימת תפוצה שאני שולח אליהם את המייל גם לא מספיקים לראות אותו, כי הוא מגיע ל-Deleted Items.
ידוע למה?
לגבי שרשורים, לא ידעתי את הכלל הזה, ואגב, לתשומת ליבכם –
החלון של "האם ברצונך לשרשר את ההודעה שלך?" קפץ לי כשבאתי לשלוח הודעה חדשה.
אז במקום ללחוץ Ok, לחצתי על Cancel במטרה לחזור לחלון ההודעה שאני כותב ולשנות את הכותרת שלה.
אבל ברגע שאתה לוחץ על Cancel, הוא אוטומטית פותח אותה כהודעה חדשה…
אוקי
1. למשל נטויז'ן מחשיבים אימייל כספאם במידה והוא נשלח למעל לחמישה אנשים אז עדיף חמישה וגם אחרים מחשיבים לפי כך ספאם.
2. לגבי היישומים, אני חושב שזו בעיה באאוטלוק עצמו וצריך לבדוק זאת.
3. צריך ללחוץ על OK וזה ישרשר את הודעתך להודעה הקיימת בפורום.
השרשורים
הבנתי ש-OK ישרשר,
אבל לחצתי Cancel כי זה בדר"כ מחזיר אותך אחורה לחלון שבאת ממנו, כדי לאפשר לך לשנות / לתקן לפני שאתה שולח שוב את ההודעה.
אנשים ילחצו על Cancel וזה יפתח להם הודעה חדשה בלי כוונתם, ואתם תצטרכו לשרשר אותה –> סתם עבודה בשבילכם..
אגב – תודה על העזרה!
למה לא לשתמש במשפט UPDATE
SQL נטו, יותר פשוט ויעיל
UPDATE משהו SET שדה = 'ערך' WHERE תנאי
עדיין צריך לכתוב כמה משפטים נפרדים
אז בעצם עדיין אני צריך לכתוב משפט SQL לכל טבלה שאני רוצה לעדכן בה משהו.
קיוויתי שה-ADO אמור לייעל לי תהליכים, ולחסוך לי את הצורך הזה.
יש לי אפשרות להשתמש בפקודת UPDATE של SQL ולעדכן מספר טבלאות במשפט אחד?