def test_get_recipients(): msg = EmailMessage() msg['To'] = 'Foo Example <*****@*****.**>' msg['Cc'] = 'Bar Bar <*****@*****.**>' msg['Bcc'] = 'Invisible Recipient <*****@*****.**>' assert get_recipients(msg) == ['*****@*****.**', '*****@*****.**', '*****@*****.**']
async def deliver(self, messages: Union[EmailMessage, Iterable[EmailMessage]]): assert check_argument_types() if isinstance(messages, EmailMessage): messages = [messages] for message in messages: args = [self.path, '-i', '-B', '8BITMIME'] + get_recipients(message) try: process = await create_subprocess_exec(*args, stdin=subprocess.PIPE, stderr=subprocess.PIPE) except Exception as e: raise DeliveryError(str(e), message) from e del message['Bcc'] stdout, stderr = await process.communicate(message.as_bytes()) if process.returncode: error = stderr.decode(sys.stderr.encoding).rstrip() raise DeliveryError(error, message)