( nehai | 2024. 04. 11., cs – 12:51 )

Megírattam a ChatGPT-vel :-), még nem néztem, hogy jó e:

import Milter
import email
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
import smtplib

class EmailDuplicationMilter(Milter.Base):

    def envfrom(self, mailfrom, *str):
        self.mailfrom = mailfrom
        return Milter.CONTINUE

    def envrcpt(self, to, *str):
        self.recipients = to
        return Milter.CONTINUE

    def header(self, name, value):
        return Milter.CONTINUE

    def eoh(self):
        return Milter.CONTINUE

    def body(self, chunk):
        if not hasattr(self, 'email_data'):
            self.email_data = chunk
        else:
            self.email_data += chunk
        return Milter.CONTINUE

    def eom(self):
        try:
            original_email = email.message_from_string(self.email_data)
            duplicate_email = MIMEMultipart()
            duplicate_email.attach(MIMEText(self.email_data))

            # Elküldés a másik email szerverre
            server = smtplib.SMTP('your_smtp_server', 587)
            server.starttls()
            server.login('your_username', 'your_password')
            server.sendmail(self.mailfrom, self.recipients, duplicate_email.as_string())
            server.quit()
            
        except Exception as e:
            print("Error: ", e)

        return Milter.ACCEPT

Milter.factory = EmailDuplicationMilter