summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/pixelated/account_recovery.py16
-rw-r--r--service/pixelated/assets/recovery.mail.en-US6
-rw-r--r--service/pixelated/assets/recovery.mail.pt-BR6
-rw-r--r--service/test/unit/test_account_recovery.py10
4 files changed, 23 insertions, 15 deletions
diff --git a/service/pixelated/account_recovery.py b/service/pixelated/account_recovery.py
index 4e8a1583..d2110bb3 100644
--- a/service/pixelated/account_recovery.py
+++ b/service/pixelated/account_recovery.py
@@ -21,7 +21,7 @@ from twisted.internet.defer import inlineCallbacks, returnValue
from twisted.logger import Logger
from twisted.mail import smtp
-from email.mime.text import MIMEText
+from email import message_from_string
from pixelated.resources.account_recovery_resource import AccountRecoveryResource
@@ -58,10 +58,7 @@ class AccountRecovery(object):
log.info('Sending mail containing the user\'s recovery code')
sender = 'team@{}'.format(self._domain)
- msg = MIMEText(self._get_recovery_mail(code))
- msg['Subject'] = 'Recovery Code'
- msg['From'] = sender
- msg['To'] = backup_email
+ msg = self._get_recovery_mail(code, sender, backup_email)
try:
send_mail_result = yield smtp.sendmail(
@@ -74,7 +71,7 @@ class AccountRecovery(object):
log.error('Failed trying to send the email with the recovery code')
raise e
- def _get_recovery_mail(self, code):
+ def _get_recovery_mail(self, code, sender, backup_email):
recovery_mail = pkg_resources.resource_filename(
'pixelated.assets',
'recovery.mail.%s' % (self._language))
@@ -82,7 +79,10 @@ class AccountRecovery(object):
account_recovery_url = '{}/{}'.format(self._domain, AccountRecoveryResource.BASE_URL)
with open(recovery_mail) as mail_template_file:
- return mail_template_file.read().format(
+ return message_from_string(mail_template_file.read().format(
domain=self._domain,
recovery_code=binascii.hexlify(code),
- account_recovery_url=account_recovery_url)
+ account_recovery_url=account_recovery_url,
+ backup_email=backup_email,
+ sender=sender,
+ date='Sat, 21 Mar 2015 19:30:09 -0300'))
diff --git a/service/pixelated/assets/recovery.mail.en-US b/service/pixelated/assets/recovery.mail.en-US
index d17f8a28..8e12c55d 100644
--- a/service/pixelated/assets/recovery.mail.en-US
+++ b/service/pixelated/assets/recovery.mail.en-US
@@ -1,3 +1,9 @@
+From: {sender}
+Date: {date}
+Subject: Recovery Code
+To: {backup_email}
+Content-Type: text/plain; charset=UTF-8
+
Hello,
You are receiving this email because you registered at a Pixelated provider, on {domain}.
diff --git a/service/pixelated/assets/recovery.mail.pt-BR b/service/pixelated/assets/recovery.mail.pt-BR
index 77271b39..8ef07a89 100644
--- a/service/pixelated/assets/recovery.mail.pt-BR
+++ b/service/pixelated/assets/recovery.mail.pt-BR
@@ -1,3 +1,9 @@
+From: {sender}
+Date: {date}
+Subject: Código de Recuperação
+To: {backup_email}
+Content-Type: text/plain; charset=UTF-8
+
Olá,
Você está recebendo este email porque você se registrou em um provedor do Pixelated, no {domain}.
diff --git a/service/test/unit/test_account_recovery.py b/service/test/unit/test_account_recovery.py
index eb7927d0..e595fc5a 100644
--- a/service/test/unit/test_account_recovery.py
+++ b/service/test/unit/test_account_recovery.py
@@ -92,12 +92,8 @@ class AccountRecoveryTest(unittest.TestCase):
mock_sendmail.return_value = defer.succeed(None)
sender = 'team@{}'.format(self.domain)
- mock_file_content = '{domain}, {recovery_code}, {account_recovery_url}'
- recovery_code_email = 'test.com, 4645a2f8997e5d0d, test.com/account-recovery'
- msg = MIMEText(recovery_code_email)
- msg['Subject'] = 'Recovery Code'
- msg['From'] = sender
- msg['To'] = self.backup_email
+ mock_file_content = '{backup_email}, {sender}, {date}, {domain}, {recovery_code}, {account_recovery_url}'
+ recovery_code_email = '\ntest@test.com, team@test.com, Sat, 21 Mar 2015 19:30:09 -0300, test.com, 34363435613266383939376535643064, test.com/account-recovery'
with patch('pixelated.account_recovery.open', mock_open(read_data=mock_file_content), create=True):
yield self.account_recovery._send_mail(self.generated_code, self.backup_email)
@@ -106,4 +102,4 @@ class AccountRecoveryTest(unittest.TestCase):
self.mock_smtp_config.remote_smtp_host,
sender,
[self.backup_email],
- msg.as_string())
+ recovery_code_email)