Acredito que o swaks é exatamente o que você está procurando.
Mutt (com suporte a SMTP compilado) durante o envio de uma mensagem pode exibir o progresso da operação, mas só faz isso no modo interativo. Se alguém tentar executar o Mutt no modo batch:
% mutt -s 'test #1' -a huge_file.tar.gz -- [email protected] SSL connection using TLSv1/SSLv3 (RC4-MD5)
ele não verá atualizações de progresso, o que é inconveniente para enviar arquivos muito grandes.
Minha pergunta é: existe algum cliente de linha de comando SMTP que tenha a capacidade de enviar mensagens através do servidor SMTP do GMail e exibir uma barra de progresso (ou algo semelhante) para o usuário?
Obrigado antecipadamente.
Acredito que o swaks é exatamente o que você está procurando.
depois de reler a pergunta e de obter a parte essencial (que deve ser destacada) acho que faria isso (já que não encontrei essa solução em clientes smtp existentes):
use a fonte msmtp , no seu 'smtp.c' existe 'smtp_send_mail ()' onde o envio atual acontece. Eu iria corrigir esse arquivo para imprimir quanto do correio é enviado. talvez como uma opção, talvez para reagir em um sinal (como 'kill -USR1') ...
Eu configuraria o Postfix como meu MTA local com o SASL ativado.
Em um sistema de exemplo do Ubuntu 9.04, instale os pacotes postfix, libsasl2-2 e ca-certificates. Crie / modifique os seguintes arquivos de configuração do Postfix.
/etc/postfix/main.cf:
biff = no
append_dot_mydomain = no
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes
myhostname = linuxbox.int.example.com
mydomain = example.com
myorigin = $mydomain
smtpd_banner = $myhostname ESMTP $mail_name
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = linuxbox.int.example.com, linuxbox, localhost.localdomain, localhost
relayhost = [mail.google.com]:587
mynetworks = 127.0.0.0/8
inet_interfaces = loopback-only
mailbox_size_limit = 0
recipient_delimiter = +
Todos os outros valores podem ser padrões, na verdade, muitos deles são, de nota, o smtp_ * no início. Altere o nome do host e o domínio do seu ambiente.
/ etc / postfix / sasl_passwd:
[mail.google.com]:587 gmail_username:gmail-password
Substitua mail.google.com pelo servidor SMTP do Google e pelo gmail_username e gmail-password pelos valores adequados.
Execute o postmap e reinicie o postfix:
sudo postmap /etc/postfix/sasl_passwd
sudo /etc/init.d/postfix restart
Agora, quando você envia um e-mail em seu sistema, ele usará o Postfix como MTA local e autenticará automaticamente com o SASL.
Tags authentication email smtp mutt