Sobre o projeto
sendsmtp é um pequeno cliente SMTP de linha de comando implementado em Python puro, sem dependências de terceiros. Ele compõe uma mensagem de e-mail text/plain em UTF-8 e a entrega a um servidor SMTP, tornando-o útil para notificações via script, relatórios de build ou para encaminhar a saída de comandos de um shell para um e-mail.
Instalação e requisitos
O pacote é instalado com pip (python3 -m pip install --user --upgrade sendsmtp) e requer Python 3.11 ou superior.
Uso básico
O comando aceita três argumentos posicionais: HOST (nome do host ou IP do servidor SMTP), FROM (usado tanto como remetente do envelope SMTP quanto no cabeçalho From) e TO (um endereço ou vários endereços separados por vírgulas, sem espaços ao redor das vírgulas). Uma invocação típica envia o corpo inline com -m e o assunto com -s, e reporta sucesso quando o servidor aceita a mensagem.
Fontes do corpo da mensagem
O corpo pode vir de três lugares. A opção -m/--message o fornece inline. A opção -i/--input o lê de um caminho de arquivo e tem precedência sobre --message; se o caminho não for um arquivo existente, a opção é ignorada e o corpo retorna para --message ou stdin. Se nenhuma opção for fornecida, o corpo é lido do stdin: a entrada via pipe é lida até o EOF, enquanto um terminal interativo aciona um prompt que lê linhas até que uma linha contenha apenas EOF.
Manipulação do assunto
--subject/-s define o assunto explicitamente. Se for omitido e o corpo começar com uma linha Subject:, essa linha é removida do corpo e usada como assunto.
Segurança de conexão e portas
O cliente suporta três modos. O SMTP simples usa a porta 25 por padrão. --starttls conecta-se em texto simples e atualiza a conexão usando a extensão STARTTLS, com porta padrão 587. -t/--tls usa TLS implícito desde o primeiro byte (SMTPS), com porta padrão 465. As duas opções de TLS são mutuamente exclusivas, e -p/--port substitui a porta padrão em qualquer modo.
Autenticação
-u/--username habilita o SMTP AUTH; sem isso, nenhuma tentativa de AUTH é feita. Se um nome de usuário for fornecido sem --password, a senha será solicitada interativamente sem eco. A documentação observa que isso é preferível porque as linhas de comando podem ser visíveis para outros processos e são registradas no histórico do shell. Falhas de autenticação abortam a execução e a mensagem não é enviada.
Destinatários além do TO
-c/--cc adiciona destinatários em cópia carbono, que aparecem no cabeçalho CC e recebem a mensagem. -b/--bcc adiciona destinatários em cópia carbono oculta, que recebem a mensagem, mas não são listados em nenhum cabeçalho. Ambos aceitam listas de endereços separadas por vírgulas.
Diagnósticos
-v/--verbose imprime o diálogo SMTP no stderr, reporta as etapas de conexão e autenticação, lista os endereços para os quais a mensagem foi entregue e, em caso de falha, mostra o stack trace completo em vez de um erro de uma única linha. Sem isso, as falhas produzem uma mensagem de erro de linha única.
Cabeçalhos de mensagem e códigos de saída
As mensagens geradas contêm os cabeçalhos From, To, Subject, CC (apenas com --cc) e um cabeçalho X-Mailer: sendsmtp. O código de saída 0 significa que o servidor aceitou a mensagem para todos os destinatários, 1 indica um erro ou pelo menos um destinatário recusado, e 130 sinaliza uma interrupção com Ctrl-C.
Licenciamento
O projeto é lançado sob a licença MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.