wrong tab
This commit is contained in:
parent
406cce6270
commit
5acce1a75b
|
|
@ -231,63 +231,63 @@ class RulesProcessor:
|
||||||
msg.attach(body_part)
|
msg.attach(body_part)
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _create_forward_message(original_parsed, recipient: str, forward_to: str, original_from: str):
|
def _create_forward_message(original_parsed, recipient: str, forward_to: str, original_from: str):
|
||||||
"""Create Forward message as complete MIME message"""
|
"""Create Forward message as complete MIME message"""
|
||||||
original_subject = original_parsed.get('Subject', '(no subject)')
|
original_subject = original_parsed.get('Subject', '(no subject)')
|
||||||
original_date = original_parsed.get('Date', 'unknown')
|
original_date = original_parsed.get('Date', 'unknown')
|
||||||
|
|
||||||
msg = MIMEMultipart('mixed')
|
msg = MIMEMultipart('mixed')
|
||||||
msg['From'] = recipient
|
msg['From'] = recipient
|
||||||
msg['To'] = forward_to
|
msg['To'] = forward_to
|
||||||
msg['Subject'] = f"FWD: {original_subject}"
|
msg['Subject'] = f"FWD: {original_subject}"
|
||||||
msg['Date'] = formatdate(localtime=True)
|
msg['Date'] = formatdate(localtime=True)
|
||||||
msg['Message-ID'] = make_msgid(domain=recipient.split('@')[1])
|
msg['Message-ID'] = make_msgid(domain=recipient.split('@')[1])
|
||||||
msg['Reply-To'] = original_from
|
msg['Reply-To'] = original_from
|
||||||
msg['X-SES-Worker-Processed'] = 'forwarded'
|
msg['X-SES-Worker-Processed'] = 'forwarded'
|
||||||
|
|
||||||
text_body, html_body = EmailParser.extract_body_parts(original_parsed)
|
text_body, html_body = EmailParser.extract_body_parts(original_parsed)
|
||||||
body_part = MIMEMultipart('alternative')
|
body_part = MIMEMultipart('alternative')
|
||||||
|
|
||||||
# Text version
|
# Text version
|
||||||
fwd_text = "---------- Forwarded message ---------\n"
|
fwd_text = "---------- Forwarded message ---------\n"
|
||||||
fwd_text += f"From: {original_from}\n"
|
fwd_text += f"From: {original_from}\n"
|
||||||
fwd_text += f"Date: {original_date}\n"
|
fwd_text += f"Date: {original_date}\n"
|
||||||
fwd_text += f"Subject: {original_subject}\n"
|
fwd_text += f"Subject: {original_subject}\n"
|
||||||
fwd_text += f"To: {recipient}\n\n"
|
fwd_text += f"To: {recipient}\n\n"
|
||||||
fwd_text += text_body
|
fwd_text += text_body
|
||||||
body_part.attach(MIMEText(fwd_text, 'plain', 'utf-8'))
|
body_part.attach(MIMEText(fwd_text, 'plain', 'utf-8'))
|
||||||
|
|
||||||
# HTML version
|
# HTML version
|
||||||
if html_body:
|
if html_body:
|
||||||
fwd_html = "<div style='border-left:3px solid #ccc;padding-left:10px;'>"
|
fwd_html = "<div style='border-left:3px solid #ccc;padding-left:10px;'>"
|
||||||
fwd_html += "<strong>---------- Forwarded message ---------</strong><br>"
|
fwd_html += "<strong>---------- Forwarded message ---------</strong><br>"
|
||||||
fwd_html += f"<strong>From:</strong> {original_from}<br>"
|
fwd_html += f"<strong>From:</strong> {original_from}<br>"
|
||||||
fwd_html += f"<strong>Date:</strong> {original_date}<br>"
|
fwd_html += f"<strong>Date:</strong> {original_date}<br>"
|
||||||
fwd_html += f"<strong>Subject:</strong> {original_subject}<br>"
|
fwd_html += f"<strong>Subject:</strong> {original_subject}<br>"
|
||||||
fwd_html += f"<strong>To:</strong> {recipient}<br><br>"
|
fwd_html += f"<strong>To:</strong> {recipient}<br><br>"
|
||||||
fwd_html += html_body
|
fwd_html += html_body
|
||||||
fwd_html += "</div>"
|
fwd_html += "</div>"
|
||||||
body_part.attach(MIMEText(fwd_html, 'html', 'utf-8'))
|
body_part.attach(MIMEText(fwd_html, 'html', 'utf-8'))
|
||||||
|
|
||||||
msg.attach(body_part)
|
msg.attach(body_part)
|
||||||
|
|
||||||
# Copy attachments - FIX FILENAMES
|
# Copy attachments - FIX FILENAMES
|
||||||
if original_parsed.is_multipart():
|
if original_parsed.is_multipart():
|
||||||
for part in original_parsed.walk():
|
for part in original_parsed.walk():
|
||||||
if part.get_content_maintype() == 'multipart':
|
if part.get_content_maintype() == 'multipart':
|
||||||
continue
|
continue
|
||||||
if part.get_content_type() in ['text/plain', 'text/html']:
|
if part.get_content_type() in ['text/plain', 'text/html']:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Fix malformed filename in Content-Disposition
|
# Fix malformed filename in Content-Disposition
|
||||||
content_disp = part.get('Content-Disposition', '')
|
content_disp = part.get('Content-Disposition', '')
|
||||||
if 'filename=' in content_disp and '"' not in content_disp:
|
if 'filename=' in content_disp and '"' not in content_disp:
|
||||||
# Add quotes around filename with spaces
|
# Add quotes around filename with spaces
|
||||||
import re
|
import re
|
||||||
fixed_disp = re.sub(r'filename=([^;"\s]+(?:\s+[^;"\s]+)*)', r'filename="\1"', content_disp)
|
fixed_disp = re.sub(r'filename=([^;"\s]+(?:\s+[^;"\s]+)*)', r'filename="\1"', content_disp)
|
||||||
part.replace_header('Content-Disposition', fixed_disp)
|
part.replace_header('Content-Disposition', fixed_disp)
|
||||||
|
|
||||||
msg.attach(part)
|
msg.attach(part)
|
||||||
|
|
||||||
return msg
|
return msg
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue