Esta es una reactivación del programa sendmail falso de Byron Jones (https://www.glob.com.au/sendmail/). Si no necesita compatibilidad con TLS v1.1 o v1.2, utilice la versión original. No hay soporte disponible para ambas versiones y ambas no reciben mantenimiento activo.
sendmail.exe es una sencilla aplicación de consola de Windows que emula la opción -t de sendmail para entregar correos electrónicos canalizados a través de stdin.
Su objetivo es facilitar la ejecución de código Unix que tiene /usr/lib/sendmail codificado como medio de entrega de correo electrónico o programas que utilizan el método de canalización de sendmail, por ejemplo como usa php en Windows.
no admite la entrega diferida y requiere un servidor SMTP para realizar la entrega real de los mensajes.
He estado usando el programa falso sendmail durante bastantes años, pero cuando uso servidores smtp de Office 365, TLS v1.0 ya no es suficiente, requieren TLS v1.2, así que intenté recompilar la fuente que Byron Jones incluido en el comunicado de su sitio. Con un poco de violín y algunos cambios menores pude recompilar el programa Delphi 2007, en la edición comunitaria actual de Delphi builder 10.3 (Rio) de Embarcadero. Contiene una versión más nueva de Indy, que tiene soporte para TLS v1.2 y TLS v1.1+ forzado en el código de sendmail.
Para ahorrarle a alguien la molestia de volver a compilar el sendmail falso desde el código fuente, lo puse a disposición en este sitio de github, incluido el código fuente, tal como está la versión original.
Descargue sendmail.zip desde este github y descomprima su contenido en una carpeta temporal en su sistema
Copie sendmail.exe, sendmail.ini y ambos archivos .dll en usrlib en la unidad donde está instalada la aplicación Unix. p.ej. Si su aplicación está instalada en c:, sendmail.exe y sendmail.ini deben copiarse en c:usrlibsendmail.exe y c:usrlibsendmail.ini o en otro directorio si la ruta es No está codificado en la aplicación que lo utiliza.
configure el servidor smtp y el dominio predeterminado en sendmail.ini.
generalmente todo lo que necesita hacer es instalar sendmail.exe en usrlib, y el código existente que llama a /usr/lib/sendmail funcionará.
Si está codificando nuevas aplicaciones, todo lo que necesita hacer es crear su mensaje de correo electrónico con encabezados completos y luego canalizarlo a 'sendmail.exe -t'.
Con PHP, la ruta de sendmail no está codificada, se puede configurar en el archivo php.ini, por lo que sendmail.exe y sus archivos se pueden colocar juntos en cualquier parte del sistema, la configuración indica "solo Unix" para la opción sendmail_path, pero funciona en Windows, anula las 3 opciones de Win32 que se encuentran arriba, consulte el manual de PHP (https://www.php.net/manual/en/mail.configuration.php#ini.sendmail-path)
Nota: Si su servidor SMTP no requiere autenticación o cifrado, puede usar los parámetros de configuración SMTP y SMPT_PORT para especificar un servidor SMTP; entonces no necesita sendmail.exe.
PHP.ini:
[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP = localhost
; http://php.net/smtp-port
;smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "C:sendmailsendmail.exe -t"
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail().
;mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On
En sendmail.ini usted especifica la dirección del servidor smtp y la combinación de nombre de usuario/contraseña.
Sendmail establece ERRORLEVEL en 0 cuando tiene éxito.
La versión 28 y superiores establecen ERRORLEVEL en -1 si el correo electrónico no se pudo entregar. El valor se cambió para proporcionar una mejor compatibilidad con PHP, que espera que ERRORLEVEL sea -1 en caso de falla.
Descomente la entrada debug_logfile en sendmail.ini e intente reenviar un mensaje fallido. esto debería crear debug.log en el mismo directorio que sendmail.exe mostrando la transcripción SMTP completa.
Consulte el sitio de versiones originales: https://www.glob.com.au/sendmail/
Este programa se publica bajo la licencia bsd: https://www.glob.com.au/sendmail/license.html
Los detalles de la licencia y el código fuente completo (Delphi 10.3 Rio) se incluyen en la carpeta fuente en el archivo zip y en este repositorio.