Para empujar el correo de Postfix a un script en Python, añadir una línea como esta a su postfix archivo de alias:
# send to [email protected]
emailname: "|/path/to/script.py"
El python email.FeedParser
module puede construir un objeto que representa un mensaje de correo electrónico MIME de la entrada estándar, haciendo algo como esto:
# Read from STDIN into array of lines.
email_input = sys.stdin.readlines()
# email.FeedParser.feed() expects to receive lines one at a time
# msg holds the complete email Message object
parser = email.FeedParser.FeedParser()
msg = None
for msg_line in email_input:
parser.feed(msg_line)
msg = parser.close()
a partir de aquí, es necesario para repetir las partes MIME de msg
y actuar en consecuencia. Consulte the documentation on email.Message
objects para conocer los métodos que necesitará. Por ejemplo, email.Message.get("Header")
devuelve el valor de encabezado de Header
.
problema ahora es, quiero que esto ocurra para cada correo electrónico, no solo los dominios emaild que están presentes. ¿Hay una tarjeta wirldcard para todos los dominios? –
@LucasKauffman Esa es una pregunta de configuración de postfix. Probablemente sea mejor preguntar en serverfault.com, ya que no tengo una respuesta. –
Además, puede que necesite invocar el intérprete de Python de la siguiente manera: 'emailname:" | python path/to/script.py "'. Al menos eso es lo que teníamos que hacer en othello. – swandog