Opened 10 years ago
Closed 9 years ago
#25437 closed Bug (duplicate)
Translation of DEFAULT_FROM_EMAIL not working
| Reported by: | Maciej Pawlisz | Owned by: | |
|---|---|---|---|
| Component: | Core (Mail) | Version: | 1.7 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Accepted | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
I tried to translate DEFAULT_FROM_EMAIL using ugettext_lazy. Unfortunately it didn't work resulting in a traceback:
File "C:\Python27\lib\site-packages\django\core\mail\message.py", line 276, in send
return self.get_connection(fail_silently).send_messages([self])
File "C:\Python27\lib\site-packages\django\core\mail\backends\smtp.py", line 94, in send_messages
sent = self._send(message)
File "C:\Python27\lib\site-packages\django\core\mail\backends\smtp.py", line 105, in _send
from_email = sanitize_address(email_message.from_email, email_message.encoding)
File "C:\Python27\lib\site-packages\django\core\mail\message.py", line 104, in sanitize_address
nm, addr = addr
ValueError: too many values to unpack
I think that there is a bug in sanitize_address:
def sanitize_address(addr, encoding):
if isinstance(addr, six.string_types):
addr = parseaddr(force_text(addr))
nm, addr = addr
parseaddr is never called because addr is not a six.string_types, but a django.utils.functional.__proxy__. force_text should be called before that check or if condition should be different, ie:
if not isinstance(addr,(tuple,list)):
addr = parseaddr(force_text(addr))
Change History (6)
comment:1 by , 10 years ago
| Triage Stage: | Unreviewed → Accepted |
|---|
comment:2 by , 10 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:3 by , 10 years ago
| Owner: | removed |
|---|---|
| Status: | assigned → new |
comment:4 by , 10 years ago
why would the DEFAULT_FROM_EMAIL be translated (it's an email address)? Is there some other case which is causing this error as well or am I missing something?
comment:5 by , 10 years ago
My guess of the use case was that the from email depends on the current language, so when the user answers to the email, it is automatically sent to the right language-dependent contact point.
I'ts a bit of a corner case to translate en email address, but this shouldn't be so hard to support, so any proposed fix is welcome.