Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Smtp MailMessage

Îåêßíçóå áðü ôï ìÝëïò gspiros. Τελευταία δημοσίευση από το μέλος gspiros στις 22-06-2009, 22:40. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  20-06-2009, 23:45 51889

    Smtp MailMessage

    Θέλω να στείλω ένα mail από μια ιστοσελίδα, αλλά δεν ξέρω πως να φτιάξω το Encoding για Ελληνικά.
                    MailMessage mail = new MailMessage();
                    mail.BodyEncoding = System.Text.Encoding.UTF32;
                    mail.From = new MailAddress(txtEmail.Text);
                    mail.To.Add("...........");
                    mail.Subject = "..........";
                    mail.IsBodyHtml = true;
                    mail.Body = "............";

                    SmtpClient smtp = new SmtpClient(".........", 25);
                    smtp.UseDefaultCredentials = true;
                    smtp.Send(mail);

    Έχω δοκιμάσει όλα τα System.Text.Encoding, αλλά τα Ελληνικά παρουσιάζονται ερωτηματικά (???????) όταν ανοίγω το email.
    Πως θα το φτιάξω αυτό?
  •  22-06-2009, 10:47 51919 σε απάντηση της 51889

    Απ: Smtp MailMessage

    Δηλαδή για να δεις ελληνικά πρέπει να αλλάξεις το encoding στο browser σου??

    Πάντως εγώ δεν είχα αυτό το πρόβλημα. Δοκίμασες το mail.BodyEncoding = System.Text.Encoding.Default;  ???

    Μήπ

    Manos
  •  22-06-2009, 13:12 51921 σε απάντηση της 51919

    Απ: Smtp MailMessage

    mail.BodyEncoding = System.Text.Encoding.UTF32;

    Γιατί UTF32 και όχι UTF8 που είναι σαφώς πιο κοινό; Ποιο πρόγραμμα χρησιμοποιείς για mailer (και σε ποιο λειτουργικό); Επίσης μπορεί να παίζει ρόλο το service του e-mail σου*.


    * Παρόμοιο πρόβλημα είχα με το smartermail, όπου έπρεπε να αλλάξω το "compose encoding" σε UTF8 από το web interface για να μπορεί να στέλνει και να λαμβάνει μηνύματα χωρίς να τα καταστρέφει - παρ' όλο που δεν χρησιμοποίησα ποτέ το εν λόγω web interface.

    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  22-06-2009, 14:30 51925 σε απάντηση της 51921

    Απ: Smtp MailMessage

    Πιο πιθανό μου φαίνεται να έχει χαλάσει το encoding της σελίδας και τα ???? να προέρχονται από το τον κώδικα που δημιουργεί το Body. Αν έχει καρφωθεί πουθενά κάποιο encoding ή αν το κείμενο δημιουργείται με βάση κάποιο αρχείο το οποίο δεν είναι σωσμένο σε unicode, άνετα μπορούν να δημιουργηθούν προβλήματα. Για παράδειγμα αν ο server είναι σε US locale, το template file φτιάχτηκε ως ASCII σε ελληνικό μηχάνημα, το αποτέλεσμα θα είναι ????. Επίσης, αν στη σελίδα ή στο web.config έχουν μπει καρφωτά τα ελληνικά encoding αλλά ο server έχει αγγλικό locale μπορεί επίσης να υπάρξει πρόβλημα στη μετατροπή των strings.

    Η λύση είναι ή να μην πειράξουμε τα encodings (οπότε παντού χρησιμιοποιείτα Unicode) ή να βεβαιωθούμε ότι παντού χρησιμοποιείται το ίδιο encoding. Προσωπικά προτιμώ την 1η λύση για να μην έχω ποτέ πρόβλημα, ούτε κατά τύχη. Το μόνο που χρειάζεται να προσέχω είναι να σώζω όλα τα αρχεία ως Unicode.

    Όσον αφορά τα ίδια τα encodings, tο πιο συνηθισμένο είναι το απλό Encoding.Unicode, ή αλλιώς UTF16, και το οποίο χρησιμοποιεί πάντα 2 bytes για να αναπαραστήσει ένα χαρακτήρα.  Το UTF32 είναι για τους Κινέζους και χρησιμοποιεί 4 χαρακτήρες οπότε δεν αποκλείεται το πρόβλημα να είναι όντως ότι το email service δεν καταλαβαίνει περί τίνος πρόκειται. Το UTF8 χρησιμοποιείται όταν έχεις πολύ λατινικό κείμενο καθώς αναπαριστά τους λατινικούς χαρακτήρες με 1 byte και τους υπόλοιπους με 2 ή περισσότερα.

     


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  22-06-2009, 22:40 51933 σε απάντηση της 51925

    Απ: Smtp MailMessage

    Δεν είχα δοκιμάσει μόνο το
    mail.BodyEncoding = System.Text.Encoding.UTF32;
    όπως φαινόταν στον κώδικά μου, αλλά πολλά...

    Τέλος πάντον, το πρόβλημα λύθηκε όταν δεν χρησιμοποίησα καθόλου το Encoding, όπως είπε ο Παναγιώτης.
    Αυτό βασικά ήταν το μόνο που δεν είχα δοκιμάσει...

    Ευχαριστώ!
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems