Mutt não envia e-mail ao especificar o servidor smtp

Mutt não envia e-mail ao especificar o servidor smtp

Estou tentando usar muttcomo meu cliente de e-mail e funciona bem para minha conta do Gmail. Mas quando uso meu e-mail comercial, ele não envia os e-mails. Não dá nenhum erro, apenas não os envia. A linha no meu .muttrcarquivo que causa esse problema é:

defina smtp_url = "smtp://mail.my_work_email_server.com:587"

O comportamento não muda ao adicionar o smtp_pass, nem ao alterar o nome do servidor de e-mail (ou seja, usando um endereço de servidor 'fictício').

Responder1

Eu tive a mesma coisa e foi isso que funcionou para mim.

set ssl_starttls=yes
set ssl_force_tls=yes

set imap_user = "[email protected]"
set imap_pass = "!HASHEDPASSWORD!"
set folder = imap://mail.example.com/
set spoolfile = imap://mail.example.com/INBOX

# SMTP user auth
# # fill in the right user and pass based on your setup
# # protocols: smtp for TLS (25/587), smtps for SSL (465)
set smtp_url = "smtp://[email protected]:587"
set smtp_pass = "$imap_pass"

# Where to save copies of outgoing mail
set record = '+Sent'

O que NÃO funcionou para mim foi a ordem em que as coisas estavam no arquivo de configuração e uma definição para 'definir registro' para uma pasta que era um link para uma pasta inexistente.

Ao responder 'não' à questão de criar a pasta ela estava travada e nenhum tráfego foi visto para o servidor SMTP.

PS: verifique os arquivos de configuração de origem, eles podem especificar configurações conflitantes e/ou na ordem errada.

HTH

Responder2

Você consegue enviar e-mails via SMTP com outro cliente de e-mail nessa máquina? Você consegue fazer telnet para o seu servidor SMTP e estabelecer uma conexão? Você está usando STARTTLS?

No mutt, você usa o protocolo smtpspara denotar uma conexão que é protegida desde o início com TLS/SSL. Se o seu servidor de e-mail espera isso (e muitos esperam hoje em dia), esse pode ser o seu problema.

No entanto, se o seu servidor de e-mail espera usar , então você usa o protocolo STARTTLSregular e certifique-se de usar .smtp://smtp_urlset ssl_starttls=yes

Aqui está um exemplo telnetde sessão que mostra um servidor de e-mail que usa STARTTLS:

$ telnet smtp.example.com 587
Trying 127.0.0.1...
Connected to smtp.example.com.
Escape character is '^]'.
220 smtp.example.com ESMTP Postfix (Debian/GNU)
EHLO test
250-
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
QUIT
221 2.0.0 Bye
Connection closed by foreign host.

Responder3

Passei um dia inteiro descobrindo isso e ajustando MUITAS combinações entre diferentes configurações de SSL/TLS e portas sem sucesso, até hoje finalmente tentei isso especificamente:

set ssl_starttls = no

Parece que o comportamento padrão do vira-lata é tentar o STARTTLS, então você precisa informá-lo especificamenteNÃO

Nenhuma outra configuração foi necessária além da óbvia smtp_urle smtp_pass. Agora posso enviar e-mails perfeitamente com isso.muttrc

set ssl_starttls = no
set smtp_url = "smtp://[email protected]@mail.example.com:587/"
set smtp_pass = "password"

Isso funcionou com oNão recomendadoconfigurações de SSL do meu provedor de e-mail. Ainda não consigo usar a configuração recomendada usando a porta 465.

Estas são todas as configurações que ajustei que afetam o envio de e-mails, se alguém quiser tentar:

set ssl_starttls = no    # apparently yes is default.
set ssl_force_tls = yes
set smtp_authenticators = "login"

set smtp_url = "smtp[s]://..."
set certificate_file = "~/.mutt/certificates"    # some recommend creating the file first: mkdir ~/.mutt && touch ~/.mutt/certificates

set ssl_verify_host = no
set ssl_verify_dates = no

Responder4

Sei que este é um tópico antigo, mas ontem passei duas horas rastreando por que as configurações mencionadas acima não funcionaram para mim e quero compartilhar a solução para economizar o tempo de outras pessoas.

O problema é que eu precisava aceitar o certificado do servidor SMTP do Google pelo menos uma vez, e isso requer a execução do mutt sem que sua entrada seja redirecionada, caso contrário, o mutt não poderá solicitar que você aceite o certificado.

A propósito, você deve selecionar (a) para sempre, para que o certificado seja armazenado no formato .mutt/certificates. Se você selecionar (o) pela primeira vez, ele usará o certificado fornecido, mas não o armazenará no arquivo  .mutt/certificates.

Portanto, execute mutt sem redirecionar a entrada (isso inclui tubulação para entrada padrão) e aceite o certificado oferecidoasempre. Depois disso, na próxima vez que você executar o mutt, ele deverá funcionar porque está usando o certificado armazenado.

informação relacionada