Cliente SMTP da linha de comandos com suporte para autenticação SASL

1

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.

    
por Alexander Gromnitsky 21.08.2009 / 02:44

3 respostas

2

Acredito que o swaks é exatamente o que você está procurando.

    
por 18.09.2009 / 06:43
1

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') ...

    
por 02.10.2009 / 07:06
0

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.

    
por 21.08.2009 / 03:59