diff options
author | Duda Dornelles <ddornell@thoughtworks.com> | 2014-09-01 16:24:46 -0300 |
---|---|---|
committer | Duda Dornelles <ddornell@thoughtworks.com> | 2014-09-01 16:24:56 -0300 |
commit | a44f7738f43a349a8c3fd4768dd54add13b3ce12 (patch) | |
tree | f247e611fa2eae630e5a74205c2abeda6eae6404 /service/pixelated/adapter | |
parent | 19391f5b4701d6ec933b016c28808e7d60157cbf (diff) |
support multiple to, cc and bcc
Diffstat (limited to 'service/pixelated/adapter')
-rw-r--r-- | service/pixelated/adapter/pixelated_mail.py | 12 | ||||
-rw-r--r-- | service/pixelated/adapter/pixelated_mail_sender.py | 10 |
2 files changed, 17 insertions, 5 deletions
diff --git a/service/pixelated/adapter/pixelated_mail.py b/service/pixelated/adapter/pixelated_mail.py index e43d5510..d20a93f4 100644 --- a/service/pixelated/adapter/pixelated_mail.py +++ b/service/pixelated/adapter/pixelated_mail.py @@ -42,7 +42,13 @@ class PixelatedMail: self.headers['from'] = [_from] def get_to(self): - return self.headers['to'][0] + return self.headers['to'] + + def get_cc(self): + return self.headers['cc'] + + def get_bcc(self): + return self.headers['bcc'] def _extract_status(self): return Status.from_flags(self.leap_mail.getFlags()) @@ -81,7 +87,9 @@ class PixelatedMail: def to_mime_multipart(self): mime_multipart = MIMEMultipart() - mime_multipart['To'] = self.headers['to'][0] + mime_multipart['To'] = ", ".join(self.headers['to']) + mime_multipart['Cc'] = ", ".join(self.headers['cc']) + mime_multipart['Bcc'] = ", ".join(self.headers['bcc']) mime_multipart['Subject'] = self.headers['subject'] mime_multipart.attach(MIMEText(self.body, 'plain')) return mime_multipart diff --git a/service/pixelated/adapter/pixelated_mail_sender.py b/service/pixelated/adapter/pixelated_mail_sender.py index 3ace6814..6f6340da 100644 --- a/service/pixelated/adapter/pixelated_mail_sender.py +++ b/service/pixelated/adapter/pixelated_mail_sender.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with Pixelated. If not, see <http://www.gnu.org/licenses/>. import smtplib +from pixelated.support.functional import flatten class PixelatedMailSender(): @@ -22,7 +23,10 @@ class PixelatedMailSender(): self.smtp_client = smtplib.SMTP('localhost', 4650) def sendmail(self, mail): - _from = self.account_email_address - _to = mail.get_to() + recipients = flatten([mail.get_to(), mail.get_cc(), mail.get_bcc()]) - self.smtp_client.sendmail(_from, _to, mail.to_smtp_format(_from=_from)) + self.smtp_client.sendmail( + self.account_email_address, + recipients, + mail.to_smtp_format(_from=self.account_email_address) + ) |