שליחת מייל בC#

מיכל46

משתמש מקצוען
D I G I T A L
העתקתי קוד לשליחת מייל,
public Boolean Get(string email, string subject, string body)

{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("<לא ניתן לפרסם מיילים באופן פומבי>");
mail.To.Add(email);
mail.Subject = subject;
mail.Body =body;
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("<לא ניתן לפרסם מיילים באופן פומבי>", "ee");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
return true;
}


כשאני שולחת ל-body, עובד מצוין.
מעבר למילה אחת - שגיאה.
מה זה יכול להיות?
 

מיכל46

משתמש מקצוען
D I G I T A L
מילים באנגלית הוא נותן כמה.
כשאני שולחת שתי מילים בעברית זו השגיאה הנזרקת:

There was an error connecting to http://localhost:33557/api/maill/<לא ניתן לפרסם מיילים באופן פומבי>/gggg/%D7%90%D7%91%D7%A8%D7%9A%20%D7%99%D7%A7%D7%A8.
Why this might have happened:
  • The server couldn't send a response:
    Ensure that the backend is working properly
  • Self-signed SSL certificates are being blocked:
    Fix this by turning off 'SSL certificate verification' in Settings > General
  • Proxy configured incorrectly
    Ensure that proxy is configured correctly in Settings > Proxy
  • Request timeout:
    Change request timeout in Settings > General
 

מאיר ומלי

משתמש מקצוען
יכול להיות שאם את שולחת בעברית את צריכה לעשות ENCODING?
משו כמו:
msg.BodyEncoding = Encoding.UTF8;​
רק מניחה השערה...
 

מיכל46

משתמש מקצוען
D I G I T A L
הוא לא נותן לעשות את זה.
ניסיתי לעשות body.utf8 , הויזואל לא מקבל את זה
 

מיכל.

משתמש סופר מקצוען
איור וציור מקצועי
אולי זה יעזור
mail.SubjectEncoding = System.Text.Encoding.UTF8;


mail.BodyEncoding = System.Text.Encoding.UTF8;​
 

מנסה את מזלי

משתמש מקצוען
תנסי להוסיף :
myMessage.Body = "בלה בלה בלה ";
myMessage.IsBodyHtml = true;
myMessage.Subject = "נושא כותרת";
myMessage.BodyEncoding = Encoding.UTF8;
 

מנסה את מזלי

משתמש מקצוען
ואולי גם באוביקט של ה CLIENT חסר לך דברים
תבדקי:
client.Timeout = 20000;
client.EnableSsl = true;
client.UseDefaultCredentials = false;
System.Net.NetworkCredential myAuturistion = new System.Net.NetworkCredential(mail.username, password);
client.Credentials = myAuturistion;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
אני עובדת המון עם שליחת מיילים יכולה לשאול אותי עוד ..
 

מנסה את מזלי

משתמש מקצוען
כן הוא אמור "לעזור לך " איזה USING חסר לך
אבל נראה לי יותר חשוב גם ה
isBodyHTML= true
תסתכלי כתבתי לך את זה למעלה
 

מיכל46

משתמש מקצוען
D I G I T A L
לא עוזררררר
הוספתי using וזה מקבל את encoding
חוצמזה, כלום, אפילו מילה אחת בעברית לא מקבל
 

מנסה את מזלי

משתמש מקצוען
זה כל הפרויקט ?
את יכולה לשלוח לי את כל הפרויקט או את כל הדף ? ובאיזה גירסה את עובדת של VS ?
 

מיכל46

משתמש מקצוען
D I G I T A L
קונטרולר אחד, vs 2017
אשמח לשלוח לך, לאיפה?
תודה!!!!
 

מיכל46

משתמש מקצוען
D I G I T A L
שמרתי כPDF
תודה
 

קבצים מצורפים

  • using System.pdf
    KB 282.4 · צפיות: 44

מנסה את מזלי

משתמש מקצוען
בשלב ראשון שבדקתי אצלי
ולא פתחתי פרויקט MVC אלא הצמדתי את הפונקציה לפרויקט שאני ובדת עליו
זה נראה כמו בעיית אבטחה בגוגל , אצלי זה מה שזה זרק
תבדקי שהחשבון גימייל שאת שולחת ממנו עליו יכול לשלוח הודעות שלא בדרך הרגילה
בפעם הראשונה ששלחתי , הגיעה אלי הודעת אזהרת אבטחה מגוגל
אני כעת בעבודה אז לא יכולה לרדת יותר לעומק
תקפידי על הסדר הזה בקוד:
SmtpServer.Port = 587;
SmtpServer.EnableSsl = true;
SmtpServer.UseDefaultCredentials = false;
System.Net.NetworkCredential myAuturistion = new System.Net.NetworkCredential("username", "password");
SmtpServer.Credentials = myAuturistion;

SmtpServer.Send(mail);

בהצלחה !!
 

מיכל46

משתמש מקצוען
D I G I T A L
החשבון של גוגל תקין.
ניסיתי להוסיף את השורות הנ"ל וכלוםם
תודה ענקית בכל אופן
 

מבקשת מידע

משתמש מקצוען
אולי את קרואת לפונקציה מהCLIENT?

השגיאה שהוא מביא לך:
There was an error connecting tohttp://localhost:33557/api/maill/<לא ניתן לפרסם מיילים באופן פומבי>/gggg/%D7%90%D7%91%D7%A8%D7%9A%20%D7%99%D7%A7%D7%A8.
נראה כמו שהוא לא מצליח לשלוח את הבקשה לשרת, והוא נופל בשליחה לAPI.
אם את אכן קוראת מהclient מציעה לך לבדוק בנפרד את פונקצית השליחה מהשרת,
ובנפרד שליחת הפרמטרים לשרת וכתיבה ללוג, ללא שליחת מייל.
 

תהילה ברג

משתמש פעיל
העתקתי קוד לשליחת מייל,
public Boolean Get(string email, string subject, string body)

{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("<לא ניתן לפרסם מיילים באופן פומבי>");
mail.To.Add(email);
mail.Subject = subject;
mail.Body =body;
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("<לא ניתן לפרסם מיילים באופן פומבי>", "ee");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
return true;
}


כשאני שולחת ל-body, עובד מצוין.
מעבר למילה אחת - שגיאה.
מה זה יכול להיות?
אני עבדתי פעם על שליחת מייל בC# צריך לקנפג הרשאות, גם במייל וגם בפרויקט
עשית את זה?
 

אולי מעניין אותך גם...

הפרק היומי

תודה
נקרא  0  פעמים

לוח מודעות

למעלה