O mailx envia e-mails usando uma retransmissão SMTP ou conecta-se diretamente ao servidor SMTP de destino?

26

Suponha que eu envie um e-mail usando o seguinte comando:

mailx [email protected]

o mailx primeiro tenta descobrir o servidor SMTP do meu provedor para retransmitir o e-mail ou se conecta diretamente. Depende se meu PC tem um endereço IP público ou está por trás de um NAT. Como faço para verificar as configurações do mailx no meu PC? Como posso verificar isso usando o tcpdump?

    
por Rohit Banga 04.05.2010 / 15:17

4 respostas

20

Tradicionalmente, Unix mail e derivativos (e muitas outras ferramentas Unix) usam a interface /usr/bin/sendmail , fornecida por quase todos os agentes de transferência de e-mail (MTAs - postfix, exim, courier e, é claro, sendmail).

Ou seja, o programa mail não fala nenhum protocolo de rede - ele envia a mensagem para sendmail via stdin e permite lidar com a entrega real. (Isso remonta aos dias em que alguns e-mails usavam o SMTP, alguns usavam o UUCP, outros usavam o BITNET ...)

Quando uma mensagem é enfileirada em sendmail , o MTA manipula a transmissão de mensagens real, seja por meio de SMTP ou outra coisa. Dependendo da configuração, ele pode se conectar diretamente ao MTA de destino ou retransmitir mensagens por meio de outro host (também chamado de smarthost).

Conexão direta é mais comum em servidores; a retransmissão via smarthost é mais comum em computadores pessoais em conexões domésticas - retransmitir através de sua conta de e-mail do Gmail ou ISP / trabalho é essencial para evitar os filtros antispam de "IP dinâmico".

(Alguns MTAs como esmtp ou nullmailer são criados especificamente para usuários domésticos e sempre usam um relayhost. Eles não suportam recebimento de e-mails e são muito mais leves em recursos.)

mailx → [/usr/bin/sendmail] → local MTA queue → [SMTP] → recipient MTA → recipient inbox
mailx → [/usr/bin/sendmail] → local MTA queue → [SMTP] → Gmail or ISP/work servers → [SMTP] → recipient MTA → recipient inbox

Outros programas, principalmente os clientes gráficos amigáveis, como Thunderbird ou Outlook, sempre conectam-se diretamente a um servidor SMTP de retransmissão / smarthost (normalmente, Gmail ou ISP / servidor SMTP de trabalho), que transmite a mensagem em seu nome.

O suporte SMTP nativo está presente em heirloom-mailx , mas não no tradicional bsd-mailx .

app → [SMTP] → Gmail or ISP/work servers → [SMTP] → recipient MTA → recipient inbox

O terceiro método - conectando-se diretamente ao servidor do destinatário - é quase nunca usado, e nenhum MUA o suporta. Em computadores pessoais, usá-lo faria com que sua mensagem fosse rejeitada (muito spam é enviado de endereços IP de usuários domésticos infectados).

app → [SMTP] → recipient MTA → caught by the spam filter
    
por 04.05.2010 / 18:16
28

mailx pode usar o SMTP. Seu arquivo de configuração é ~ / .mailrc

Um exemplo é mailx usando o SMTP do Gmail .

A configuração pode até estar em um comando:

mailx -v -s "$EMAIL_SUBJECT" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://smtp.gmail.com:587 \
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
-S smtp-auth-user=$FROM_EMAIL_ADDRESS \
-S smtp-auth-password=$EMAIL_ACCOUNT_PASSWORD \
-S ssl-verify=ignore \
-S nss-config-dir=~/.mozilla/firefox/xxxxxxxx.default/ \
$TO_EMAIL_ADDRESS

Se um servidor SMTP normal é usado, é muito mais fácil (veja uma introdução detalhada aqui ):

mailx -v -s "$EMAIL_SUBJECT" \
-S smtp=smtp://smtp.example.com
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
$TO_EMAIL_ADDRESS

Você também pode colocá-los no arquivo de configuração do mailx ~ / .mailrc

    
por 06.12.2010 / 17:37
1

Na página mailx(1) man, seção DESCRIPTION , subseção Opções de seqüência de caracteres :

   smtp   Normally, mailx invokes sendmail(8) directly to  transfer
          messages.  If the smtp variable is set, a SMTP connection
          to the server specified by the value of this variable  is
          used  instead.
    
por 04.05.2010 / 15:27
1

existe uma alternativa sem o mta local como o sendmail / postix.

pacote debian ssmtp

info from rpm description:

Summary     : Extremely simple MTA to get mail off the system to a Mailhub
URL         : http://packages.debian.org/stable/mail/ssmtp
License     : GPLv2+
Description : A secure, effective and simple way of getting mail off a system to your mail
            : hub. It contains no suid-binaries or other dangerous things - no mail spool
            : to poke around in, and no daemons running in the background. Mail is simply
            : forwarded to the configured mailhost. Extremely easy configuration.

hth

Stefan K.

    
por 27.01.2014 / 10:06