def attach(self, file_bytes, file_name):
try:<EOL><INDENT>file_bytes = base64.b64encode(file_bytes)<EOL><DEDENT>except TypeError:<EOL><INDENT>file_bytes = base64.b64encode(bytes(file_bytes, '<STR_LIT:utf-8>'))<EOL><DEDENT>self._attachments.append(<EOL>Attachment(get_valid_filename(file_name), file_bytes.decode('<STR_LIT:utf-8>'))<EOL>)<EOL>
Adds an attachment to the email. The filename is passed through Django's get_valid_filename which removes
        invalid characters. From the documentation for that function:

        >>> get_valid_filename("john's portrait in 2004.jpg")
        'johns_portrait_in_2004.jpg'

        Args:
            file_bytes: The bytes of the file to send (if you send a string, ex for CSV, pyOutlook will attempt to
                convert that into bytes before base64ing the content).
            file_name: The name of the file, as a string and leaving out the extension, that should be sent