Este é um renascimento do falso programa sendmail de Byron Jones (https://www.glob.com.au/sendmail/). Se você não precisa de suporte TLS v1.1 ou v1.2, use a versão original, não há suporte disponível em ambas as versões e ambas não são mantidas ativamente.
sendmail.exe é um aplicativo simples do console do Windows que emula a opção -t do sendmail para entregar e-mails canalizados via stdin.
destina-se a facilitar a execução de código unix que tem /usr/lib/sendmail codificado como um meio de entrega de e-mail ou programas que usam o método sendmail pipe, por exemplo, como o php no Windows usa.
ele não oferece suporte à entrega adiada e requer um servidor SMTP para realizar a entrega real das mensagens.
Eu uso o programa sendmail falso há alguns anos, mas quando uso os servidores smtp do Office 365, o TLS v1.0 não é mais suficiente, eles exigem o TLS v1.2, então tentei recompilar a fonte que Byron Jones incluído no lançamento em seu site. Com um pouco de mexer e algumas pequenas alterações consegui recompilar o programa Delphi 2007, na atual edição comunitária do Delphi Builder 10.3 (Rio) da Embarcadero. Ele contém uma versão mais recente do Indy, que tem suporte para TLS v1.2 e TLS forçado v1.1+ no código sendmail.
Para evitar que alguém tenha o trabalho de recompilar o sendmail falso a partir do código-fonte, disponibilizei-o neste site do github, incluindo o código-fonte, assim como a versão original.
Baixe sendmail.zip deste github e descompacte seu conteúdo em uma pasta temporária em seu sistema
copie sendmail.exe, sendmail.ini e ambos os arquivos .dll para usrlib na unidade onde o aplicativo unix está instalado. por exemplo. se seu aplicativo estiver instalado em c:, sendmail.exe e sendmail.ini precisam ser copiados para c:usrlibsendmail.exe e c:usrlibsendmail.ini ou outro diretório se o caminho não for não está codificado no aplicativo que o está usando.
configure o servidor smtp e o domínio padrão em sendmail.ini.
geralmente tudo que você precisa fazer é instalar sendmail.exe em usrlib, e o código existente que chama /usr/lib/sendmail funcionará.
se você estiver codificando novos aplicativos, tudo o que você precisa fazer é construir sua mensagem de e-mail com cabeçalhos completos e canalizá-la para 'sendmail.exe -t'
Com PHP o caminho do sendmail não é codificado, ele pode ser configurado no arquivo php.ini, então o sendmail.exe e seus arquivos podem ser colocados juntos em qualquer lugar do sistema, a configuração indica "Somente Unix" para a opção sendmail_path, mas funciona no windows, ele substitui as 3 opções somente do Win32 acima dele, veja o manual do PHP (https://www.php.net/manual/en/mail.configuration.php#ini.sendmail-path)
Nota: Se o seu servidor SMTP não requer autenticação ou criptografia, você pode simplesmente usar os parâmetros de configuração SMTP e SMPT_PORT para especificar um servidor SMTP, então você não precisa do 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
No sendmail.ini você especifica o endereço do servidor smtp e a combinação nome de usuário/senha
Sendmail define ERRORLEVEL como 0 quando bem-sucedido.
A versão 28 e superior define ERRORLEVEL como -1 se o e-mail não puder ser entregue. O valor foi alterado para fornecer melhor compatibilidade com PHP, que espera que ERRORLEVEL seja -1 em caso de falha.
Remova o comentário da entrada debug_logfile em sendmail.ini e tente reenviar uma mensagem com falha. isso deve criar debug.log no mesmo diretório que sendmail.exe mostrando a transcrição SMTP completa.
Consulte o site das versões originais: https://www.glob.com.au/sendmail/
Este programa é lançado sob a licença bsd: https://www.glob.com.au/sendmail/license.html
Os detalhes da licença e o código-fonte completo (Delphi 10.3 Rio) estão incluídos na pasta de origem no arquivo zip e neste repositório.