Fix line-discarding bug
This commit is contained in:
parent
56101b86c0
commit
3c8b792203
|
@ -300,7 +300,7 @@ def _encrypt_all_payloads_inline(message: email.message.Message, gpg_to_cmdline)
|
||||||
def _encrypt_all_payloads_mime(message: email.message.Message, gpg_to_cmdline):
|
def _encrypt_all_payloads_mime(message: email.message.Message, gpg_to_cmdline):
|
||||||
# Convert a plain text email into PGP/MIME attachment style. Modeled after enigmail.
|
# Convert a plain text email into PGP/MIME attachment style. Modeled after enigmail.
|
||||||
pgp_ver_part = email.message.Message()
|
pgp_ver_part = email.message.Message()
|
||||||
pgp_ver_part.set_payload("Version: 1"+text.EOL)
|
pgp_ver_part.set_payload('Version: 1' + text.EOL)
|
||||||
pgp_ver_part.set_type("application/pgp-encrypted")
|
pgp_ver_part.set_type("application/pgp-encrypted")
|
||||||
pgp_ver_part.set_param('PGP/MIME version identification', "", 'Content-Description')
|
pgp_ver_part.set_param('PGP/MIME version identification', "", 'Content-Description')
|
||||||
|
|
||||||
|
@ -317,8 +317,8 @@ def _encrypt_all_payloads_mime(message: email.message.Message, gpg_to_cmdline):
|
||||||
|
|
||||||
if isinstance(message.get_payload(), str):
|
if isinstance(message.get_payload(), str):
|
||||||
msg_copy = copy.deepcopy(message)
|
msg_copy = copy.deepcopy(message)
|
||||||
|
_prepend_header(msg_copy)
|
||||||
copy_encrypted = _encrypt_payload(msg_copy, gpg_to_cmdline, True)
|
copy_encrypted = _encrypt_payload(msg_copy, gpg_to_cmdline, True)
|
||||||
|
|
||||||
encrypted_part.set_payload(copy_encrypted.get_payload())
|
encrypted_part.set_payload(copy_encrypted.get_payload())
|
||||||
|
|
||||||
_set_type_and_boundary_2(message, boundary)
|
_set_type_and_boundary_2(message, boundary)
|
||||||
|
@ -333,6 +333,16 @@ def _encrypt_all_payloads_mime(message: email.message.Message, gpg_to_cmdline):
|
||||||
return [pgp_ver_part, _encrypt_payload(encrypted_part, gpg_to_cmdline, False)]
|
return [pgp_ver_part, _encrypt_payload(encrypted_part, gpg_to_cmdline, False)]
|
||||||
|
|
||||||
|
|
||||||
|
def _prepend_header(message: email.message.Message):
|
||||||
|
# XXX Email module discards first line, so we need to insert something to
|
||||||
|
# be discarded.
|
||||||
|
|
||||||
|
additionalSubHeader = ''
|
||||||
|
if 'Content-Type' in message and not message['Content-Type'].startswith('multipart'):
|
||||||
|
additionalSubHeader = "Content-Type: " + message['Content-Type'] + text.EOL
|
||||||
|
message.set_payload(additionalSubHeader + text.EOL + message.get_payload())
|
||||||
|
|
||||||
|
|
||||||
def _make_boundary():
|
def _make_boundary():
|
||||||
junk_msg = MIMEMultipart()
|
junk_msg = MIMEMultipart()
|
||||||
# XXX See EmailTest.test_boundary_generated_after_as_string_call.
|
# XXX See EmailTest.test_boundary_generated_after_as_string_call.
|
||||||
|
|
Loading…
Reference in New Issue