9-mail/mailx exemplos de comandos para enviar e-mails a partir de linha de comando no Linux

Enviar e-mails a partir de linha de comando

O comando mail é essencial que deve estar disponível em qualquer servidor linux de modo que vários serviços e outros aplicativos da web pode gerar e transmitir e-mails.

num post anterior no comando mail vimos como o comando mail pode ser usado para enviar e-mails da linha de comandos no seu servidor linux.,

neste tutorial estaremos usando uma versão melhorada do comando mail. Seu chamado mailx( ou apenas mail quando instalado), e ele pode fazer muitas mais coisas do que o comando mail mais antigo do pacote GNU mailutils pode fazer.

como funciona

o comando mail/mailx precisa de um servidor de smtp local (MTA) em execução para entregar os e-mails. A rota tomada pelo email é um pouco como este –

mail -> sendmail -> local MTA -> recipient MTA 

o MTA destinatário seria o servidor smtp do gmail Se o seu destinatário é alguém em gmail.com por exemplo., Para o MTA local, você precisa instalar um servidor de smtp como o Postfix. Uma instalação básica do Postfix com configuração mínima funcionaria na maioria dos casos.

Instale o comando mailx

nos sistemas baseados em Ubuntu / Debian o comando mailx está disponível a partir de 2 pacotes diferentes –

1. heirloom-mailx
2. BSD-mailx

estaremos usando o pacote heirloom-mailx porque ele tem mais recursos e opções.em sistemas baseados em CentOS / Fedora, há apenas um pacote chamado “mailx” que é o pacote de herança.,

para saber qual o pacote mailx instalado no seu sistema, Verifique a saída “man mailx” e desloque-se até ao fim e deverá ver algumas informações úteis.

# ubuntu/debian$ sudo apt-get install heirloom-mailx# fedora/centos$ sudo yum install mailx

usando o comando mailx

uma vez instalado, o comando mailx pode ser directamente referenciado com o nome mail, por isso basta escrever isso na linha de comandos.

1. E-mail simples

execute o seguinte comando, e então mailx esperaria para que você digite a mensagem do E-mail. Você pode carregar em enter para novas linhas. Quando terminar de escrever a mensagem, carregue em Ctrl+D e mailx irá mostrar o EOT.,

Depois do que mailx entrega automaticamente o e-mail para o destino.

$ mail -s "This is the subject" Hi someoneHow are youI am fineByeEOT

2. Pegue a mensagem de um arquivo

o corpo da mensagem do E-mail pode ser retirado de um arquivo também.

$ mail -s "This is Subject" < /path/to/file

A mensagem também pode ser canalizada usando o comando echo –

$ echo "This is message body" | mail -s "This is Subject" 

3. Múltiplos destinatários

para enviar o correio para vários destinatários, indique todos os e-mails separados por uma vírgula

$ echo "This is message body" | mail-s "This is Subject" ,

4., CC e BCC

as opções”- c “e”- b ” podem ser usadas para adicionar endereços CC e BCC respectivamente.

$ echo "This is message body " | mail - s" This is Subject " - c 

5. Indique a partir do nome e endereço

para indicar um” de ” nome e endereço, use a opção “-r”. O nome deve ser seguido pelo endereço embrulhado em “”.

$ echo "Este é o corpo da mensagem" | mail-s "Este Sujeito" -r "Harry<>" 

6., Indique o endereço” resposta-para ”

a resposta para o endereço é definida com a variável de opção interna “replyto” usando a opção “-S”.

7. Os anexos

podem ser adicionados com a opção”- a”.

$ echo "This is message body" | mail - s "This is Subject" - R "Harry <>" -a/path/to/file 

8. Use o servidor SMTP externo

esta é uma funcionalidade exclusiva, que você obtém apenas com o Heirloom mailx e não com o BSD mailx, ou o comando mail do gnu mailutils ou o comando mutt.,

o comando mailx pode usar um servidor smtp externo para transmitir a mensagem para a frente. A sintaxe é um pouco longa, mas faz sentido.

aqui está uma discriminação

Você pode usar os servidores smtp gmail e enviar e-mails através da sua conta gmail. Isso é tão fixe!
para o gmail especificamente, você precisa ativar configurações de aplicativos menos seguras antes de poder enviar e-mail dessa forma.9. Ver Verbose-watch smtp communication

When using external smtp servers, you can choose to watch the entire smtp communication that is done in the background., Isto é útil especialmente ao testar ou depurar servidores de smtp.

solução de problemas

No caso de as mensagens não estarem a ser entregues adequadamente, é necessário verificar algumas coisas. A primeira coisa a verificar é que um servidor smtp (mta) está a correr localmente. O comando netstat pode dizer que

Se um servidor stmp como o Postfix está em execução e os e-mails ainda não estão indo, então tente configurar novamente o Postfix, por exemplo. Nos sistemas Ubuntu / Debian, isso pode ser feito com o comando dpkg-reconfigure

$ sudo dpkg-reconfigure postfix

então tente, o comando mail e ele deve funcionar., Se ainda não funcionar, tente contactar o seu fornecedor de servidores.

Sem e-mails de sistemas locais

Se tentar enviar e-mails do seu computador local para um endereço de gmail, o seu correio provavelmente seria rejeitado, por isso não tente fazê-lo.

isto é porque computadores comuns conectados ao endereço de internet têm um endereço ip que não está associado com qualquer domínio válido como tal, e gmail estritamente verifica tais credenciais antes de aprovar qualquer e-mail para passar.,

notas e recursos

para além do mailx, existem outras ferramentas como Swaks e smtp-cli que podem ser usadas para enviar mensagens da linha de comandos e suportar várias funcionalidades como a especificação de servidores de smtp e a adição de anexos, etc.

no entanto, o comando mailx está disponível nos repositórios predefinidos das distros mais comuns, por isso pode ser instalado facilmente. Além disso, mantém uma sintaxe muito semelhante à do comando mail, o que faz com que seja uma gota em substituição ao comando mail mais antigo.,

o comando mailx é mesmo capaz de ler e-mails de servidores remotos de IMAP, mas isso é algo que mantivemos fora deste post e falaríamos mais tarde. Para saber mais, verifique a página de man para o comando mailx com “man mailx”.

Share

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *