
Me pregunto si es posible crear mensajes de correo y colocarlos en la cola de postfix simplemente escribiendo archivos en el disco duro.
Actualmente tengo un script que utiliza una conexión de socket para volcar los datos, pero si pudiera escribirlos directamente en el disco duro, esto aceleraría considerablemente las cosas. es posible?
Respuesta1
Se supone que no debes meterte en la cola de esa manera, sin embargo, puedes usar las herramientas de correo de la línea de comandos, como:
sendmail -i [recipient@address] < [file]
Lo cual creo que debería mantener todo del lado del servidor hasta que Postfix intente realizar la entrega.
Respuesta2
Sí, usando la cola de entrega de correo:http://www.postfix.org/MAILDROP_README.html#maildrop_queue
Las colas Postfix son sólo directorios en el sistema de archivos; los elementos en cola son inodos que se mueven de un directorio (cola) a otro; el archivo utiliza un formato binario personalizado que contiene todos los metadatos necesarios para procesarlo.
Existe un módulo perlCorreo::Postfix::Postdropque guarda el correo en el directorio de entrega de correo.
Mail::Postfix::Postdrop - Inyecta correos electrónicos en un directorio de entrega de correo de Postfix
use Mail::PostFix::Postdrop 'inject';
inject $message, Sender => '[email protected]',
Recipients => [ qw([email protected] [email protected]) ];
Es posible que puedas utilizarposdropen sí (que es como el comando 'sendmail' inyecta correo en la cola):
The postdrop(1) command creates a file in the maildrop
directory and copies its standard input to the file.
Yo tampoco lo he hecho; Háganos saber si tiene suerte con esto.
Respuesta3
Érase una vez, uno podía hacer exactamente eso con Postfix. Después de todo, el maildrop no es más que un directorio en el que se escriben los archivos. El problema es que se pueden hacer todo tipo de trucos con un directorio de entrega de correo en el que se puede escribir todo el mundo. (Esto se sabía desde hace mucho tiempo, incluso en el momento en que se escribió Postfix por primera vez). Por lo tanto, en un sistema configurado correctamente, no podrá simplemente escribir archivos.
Es casi seguro que este no sea su cuello de botella en primer lugar. Después de todo, estamos hablando de correo electrónico, donde hay una gran cosa llamada "Internet" que a menudo es la parte más lenta del sistema. Sospecho firmemente que no ha analizado sus cuellos de botella para ver qué y dónde están, y que su idea de que escribir directamente en un archivo spool "acelerará las cosas considerablemente" se basa en la esperanza más que en la medición.
Es bastante fácil eliminar cualquiera de los retrasos en un diálogo de envío SMTP con canalización SMTP. Y, como se menciona en otra respuesta, usar la utilidad de Postfix sendmail
, que en este caso es poco más que un contenedor postdrop
, también es una opción. Pero ahorrar un segundo en el envío de mensajes probablemente se pierda en el ruido si su verdadero cuello de botella es, por ejemplo, una conexión telefónica a Internet.