Re: sending mail in utf-8

2006-01-16 Thread Gábor Farkas


Maniac wrote:


Jeroen Ruigrok van der Werven wrote:


Makes sense given the recent push for making the Django core UTF8.

No, recent push is to make Django core Unicode (arrays of 2-byte 
normalized characters).


well, it's not always 2bytes (usually it's 4bytes).

(sorry, couldn't resist :)

gabor


Re: sending mail in utf-8

2006-01-16 Thread Maniac


Jeroen Ruigrok van der Werven wrote:


Makes sense given the recent push for making the Django core UTF8.

No, recent push is to make Django core Unicode (arrays of 2-byte 
normalized characters). Django now is in UTF-8 (Unicode encoded to be 
passed as single-byte strings) and this is the exact problem: it's 
harder to work with UTF-8 then with Unicode.



The
majority of the MUA's out there already know how to support UTF8 in
emails.

In fact for emails I'm not that sure. People often are forced to read 
email through old-style web-based mail readers that don't have any 
notion of unicode in general and utf-8 in particular, admins set them up 
to work in some legacy 1-byte encoding. This is why there is a 
preference setting in Igor's patch.


Re: sending mail in utf-8

2006-01-16 Thread Jeroen Ruigrok van der Werven
On 1/16/06, Igor Goryachev <[EMAIL PROTECTED]> wrote:
> Any feedback?

Makes sense given the recent push for making the Django core UTF8. The
majority of the MUA's out there already know how to support UTF8 in
emails. It will only increase the satisfaction for the non-English
speaking populace (which outnumbers the native English speakers). Even
closely related languages to English like Dutch, German, Norwegian,
Swedish, and Danish already need accents, us-ascii does NOT provide
these.

+1

--
Jeroen Ruigrok van der Werven


Re: sending mail in utf-8

2006-01-16 Thread Igor Goryachev

Igor Goryachev <[EMAIL PROTECTED]> writes:

> I think it would be very useful if it was possible to send e-mail (using
> 'django.core.mail') in something different than 'us-ascii', for example,
> in 'utf-8' by default. I have tried to implement this:

I have reworked it a bit and submitted patch Ticket #1235.

Any feedback?


-- 
Igor Goryachev  E-Mail/Jabber: [EMAIL PROTECTED]


sending mail in utf-8

2006-01-15 Thread Igor Goryachev


Hello.

I think it would be very useful if it was possible to send e-mail (using
'django.core.mail') in something different than 'us-ascii', for example,
in 'utf-8' by default. I have tried to implement this:

=
Index: django/conf/global_settings.py
===
--- django/conf/global_settings.py  (revision 1983)
+++ django/conf/global_settings.py  (working copy)
@@ -68,6 +68,9 @@
 DEFAULT_CONTENT_TYPE = 'text/html'
 DEFAULT_CHARSET = 'utf-8'
 
+# Default charset used for sending e-mail messages.
+DEFAULT_EMAIL_CHARSET = 'utf-8'
+
 # E-mail address that error messages come from.
 SERVER_EMAIL = '[EMAIL PROTECTED]'
 
Index: django/core/mail.py
===
--- django/core/mail.py (revision 1983)
+++ django/core/mail.py (working copy)
@@ -1,7 +1,9 @@
 # Use this module for e-mailing.
 
 from django.conf.settings import DEFAULT_FROM_EMAIL, EMAIL_HOST, 
EMAIL_SUBJECT_PREFIX
+from django.conf.settings import DEFAULT_EMAIL_CHARSET
 from email.MIMEText import MIMEText
+from email.Header import Header
 import smtplib
 
 class BadHeaderError(ValueError):
@@ -39,8 +41,8 @@
 if not recipient_list:
 continue
 from_email = from_email or DEFAULT_FROM_EMAIL
-msg = SafeMIMEText(message)
-msg['Subject'] = subject
+msg = SafeMIMEText(message, 'plain', DEFAULT_EMAIL_CHARSET)
+msg['Subject'] = str(Header(subject, 
DEFAULT_EMAIL_CHARSET)).replace('\n', '').replace('\r', '')
 msg['From'] = from_email
 msg['To'] = ', '.join(recipient_list)
 server.sendmail(from_email, recipient_list, msg.as_string())

=


-- 
Igor Goryachev  E-Mail/Jabber: [EMAIL PROTECTED]