Articles

exemplos de comandos Linux mail-Enviar E-mails da linha de comandos

Posted by admin

enviar e-mails da linha de comandos

ser capaz de enviar e-mails de uma linha de comandos de um servidor é bastante útil quando você precisa de gerar e-mails programaticamente a partir de scripts shell ou aplicações web, por exemplo.

este tutorial explica como usar o comando mail no linux para enviar mensagens da linha de comandos usando o comando mail.,

como o comando mail funciona

para aqueles que estão curiosos sobre como exatamente o comando mail entrega as mensagens aos destinatários, aqui está uma pequena explicação rápida.

o comando mail invoca o binário padrão do sendmail (/usr/sbin / sendmail) que, por sua vez, se liga ao MTA local para enviar o correio para o seu destino. O MTA local é um servidor smtp em execução local que aceita e-mails na porta 25.

mail command -> /usr/sbin/sendmail -> local MTA (smtp server) -> recipient MTA (and Inbox)

isto significa que um servidor de smtp como o Postfix deve estar a correr na máquina onde pretende usar o comando mail., Se nenhum estiver em execução, você receberá a mensagem de erro “send-mail: Cannot open mail:25”.

Instale o comando mail

o comando mail está disponível em vários pacotes diferentes. Estes pacotes estão disponíveis nos repositórios padrão da maioria das distribuições linux populares como debian, ubuntu, centos e fedora.

Aqui está a lista de alguns dos pacotes comuns que fornecem o comando mail.1. gnu mailutils
2. heirloom-mailx
3. BSD-mailx

cada sabor tem um conjunto diferente de opções e recursos suportados., Por exemplo, o comando mail/mailx do pacote heirloom-mailx é capaz de usar um servidor smtp externo para enviar mensagens, enquanto os outros dois podem usar apenas um servidor smtp local.

neste tutorial estaremos usando o comando mail do pacote mailutils, que está disponível na maioria dos sistemas baseados em Debian e Ubuntu.

Use o comando apt-get para o instalar

$ apt-get install mailutils

Agora deverá ter o comando mail pronto para funcionar.

exemplos de comandos de E-mail

Aqui estão alguns exemplos de como usar o comando de E-mail para enviar e-mails da linha de comandos., Estes exemplos dar-lhe-ão uma ideia básica das várias opções e Funcionalidades suportadas pelo comando mail.

Nota: Se estiver a tentar enviar uma mensagem de teste para algum fornecedor de correio, como o gmail ou o outlook, então terá de executar estes comandos num servidor com a configuração adequada. Se você tentar enviar e-mail de você máquina local ou desktop, então a maioria dos filtros de spam provavelmente bloqueá-lo.

1. Enviar um e-mail simples

execute o comando abaixo, para enviar um e-mail para a opção s especifica o assunto do E-mail seguido pelo endereço de E-mail do destinatário.,

$ mail -s "Hello World" 

o comando acima não está terminado ao carregar no Enter. Em seguida, você tem que digitar a mensagem. Quando terminar, carregue em ‘Ctrl-D’ no início de uma linha

$ mail -s "Hello World" Cc:Hi PeterHow are youI am fineGood Bye<Ctrl+D>

a linha de comandos pede o campo ‘Cc’ (cópia de carbono). Digite o endereço CC e pressione enter ou pressione enter sem nada para saltar.

do tipo de linha seguinte na sua mensagem. Se carregar em enter, irá criar uma nova linha na mensagem. Assim que terminar de inserir a mensagem, pressione . Uma vez que você faça isso, o comando de E-mail iria enviar a mensagem para a entrega e feito.2., O assunto e a Mensagem em uma única linha

Para especificar o corpo da mensagem em apenas uma linha de comando, use o seguinte estilo

$ mail -s "This is the subject" <<< 'This is the message'

Ou assim

$ echo "This is the body" | mail -s "Subject" -aFrom:Harry\<\> 

3. Pegue a mensagem de um arquivo

Se a mensagem de E-mail está em um arquivo, então podemos usá-la diretamente para enviar o e-mail. Isto é útil ao chamar o comando mail de scripts shell ou outros programas escritos em perl ou php, por exemplo.

$ mail -s "Hello World" < /home/user/mailcontent.txt

Ou quick um forro

$ echo "This is the message body" | mail -s "This is the subject" 

4., Especifique os destinatários CC e CCO

Outros parâmetros úteis no e-mail de comando:

-c email-address (CC - send a carbon copy to email-address)-b email-address (BCC - send a blind carbon copy to email-address)

Aqui está um exemplo de como você pode usar estas opções

$ mail -s "Hello World" -c -b 

5. Enviar para vários destinatários

também é possível especificar vários destinatários, juntando – os com uma vírgula.

$ mail -s "Hello World" ,

6. Indique o nome e endereço

a opção”- a ” permite indicar informações adicionais do cabeçalho a anexar à mensagem. Ele pode ser usado para fornecer o nome” de ” e endereço., Aqui está um exemplo rápido

# echo "This is the message body" | mail-s "This is the subject" -aFrom:

a opção a adiciona basicamente cabeçalhos adicionais. Para especificar o nome de from, use a seguinte sintaxe.

$ echo "This is the body"/mail-s "Subject" -aFrom:Harry\\> 

Note que temos de escapar das setas menos / grandes, uma vez que elas têm um significado especial para a linha de comandos. Quando você está emitindo o comando de dentro de algum script, você omitiria isso.

7., Enviar o correio para um utilizador do sistema local

para enviar o correio para um utilizador do sistema local basta usar o nome de utilizador no lugar do endereço do destinatário

$ mail -s "Hello World" username

Você também poderá adicionar “@hostname” ao nome do utilizador, onde o nome da máquina deverá ser o nome do sistema actual.

8. Saída descritiva

às vezes, ao testar os servidores de correio, você gostaria de verificar os comandos de SMTP que estão a ser usados pelo comando de correio., Use a opção “- v”para que

$ mail -v -s "This is the subject" <<< 'This is the message'

Se o correio não for entregue devido a um servidor de correio configurado de forma inadequada, por exemplo, o registo de comandos do smtp irá mostrar o que correu mal.

enviar e-mail com anexos usando o Mutt

o comando mail pode fazer algumas coisas básicas até agora, mas continuando, não tem funcionalidades importantes como enviar anexos.

então temos que usar outra ferramenta de linha de comando chamada mutt. Mutt é como uma versão melhorada do comando mail com uma sintaxe muito semelhante.

os usuários Debian / Ubuntu podem instalar o mutt com o comando apt.,

$ apt-get install mutt

Fedora/CentOS ou Red Hat Enterprise Linux (RHEL) utilizadores:

$ yum install mutt

agora está pronto para enviar correio com anexos com interface de linha de comandos.

Enviar um simples email

$ echo "This is mutt from universe" | mutt -s "This is mutts subject" 

Enviar e-mail com anexo

Use “a” uma opção para especificar o caminho do arquivo para anexar

$ mutt -s "Subject" -a /path/to/file -- < home/user/mailcontent.txt

de Acordo com a sintaxe do mutt opções, é necessário separar os arquivos e os destinatários com um traço duplo “–“. Também a opção”- a ” deve ser a última.,

enviar e-mail com scripts bash/shell

este exemplo demonstra como o resultado de um comando pode ser usado como a mensagem no e-mail.
aqui está um script shell fácil que relata o uso do disco por e-mail.

#!/bin/bashdu -sh | mail -s "disk usage report" 

abra um novo ficheiro e adicione as linhas acima a esse ficheiro, grave-o e execute na sua caixa. Você receberá um e-mail que contém “du-sh” saída.

Leia e-mails

isto não é algo interessante e você não estaria fazendo isso em um cenário da vida real. Só está a ser mostrada por causa disso.

o comando mail pode ser usado para ler mensagens., Basta executá-lo sem opções e ele iria listar todas as mensagens na sua caixa de entrada

$ mail

Aqui está uma saída de exemplo

$ mailHeirloom mailx version 12.5 6/20/10. Type ? for help."/var/mail/enlightened": 7 messages 3 unread O 1 Enlightened Sat Dec 6 11:33 21/658 This is the subject O 2 Enlightened Sat Dec 6 11:34 773/25549 This is the subject O 3 Enlightened Sat Dec 6 16:43 20/633 This is the subject O 4 Enlightened Sat Dec 6 16:44 20/633 This is the subject U 5 Mail Delivery Syst Sat Dec 6 16:50 74/2425 Undelivered Mail Returned to Sender U 6 Enlightened Sat Dec 6 16:51 19/632 This is mutts subject U 7 Enlightened Sat Dec 6 16:52 19/647 This is mutts subject?

no final está o ponto de interrogação q, Que é uma linha de comandos interactiva à espera do seu comando. Basta indicar o número do E-mail que deseja ler e carregar em enter. Abriria o correio nessa altura.

Depois de ler o e-mail, digite ‘q’ e carregue em enter para voltar. Introduza o z e carregue em enter para trazer de volta a lista de E-mails.

o comando mail por omissão lê os e-mails do directório “/var/mail/”., Então cada usuário tem um diretório de E-mail separado.

Esta forma de armazenar e obter e-mails não é muito útil ou prática na vida real, onde o endereço de E-mail consiste de nome de domínio, juntamente com o nome de usuário e um único servidor pode estar hospedando e-mails para vários domínios.

Maildir-utils command

‘mu’ é um conjunto de ferramentas de linha de comandos Para Linux/Unix que lhe permitem encontrar rapidamente os e-mails que procura.,

Debian/Ubuntu, os usuários podem usar o comando apt-get para instalar

# apt-get install maildir-utils

Para pesquisar e-mails de william com o assunto relatório, use o seguinte comando

$ mu find from:william subject:report

Para verificar as configurações de e-mail use a opção informações.

# mu-tool infoVERSION=2.99.97SYSCONFDIR=/etcMAILSPOOLDIR=/var/mail/SCHEME=mboxLOG_FACILITY=mail.....

notas e recursos

o comando mail é um comando muito básico para enviar mensagens. Ele deve estar presente e devidamente configurado em qualquer servidor linux, para que as mensagens sejam geradas e entregues corretamente.,

o comando mail é usado principalmente quando você está escrevendo scripts bash para enviar e-mails de um servidor de uma forma automatizada. Além disso, o comando mail não é muito útil como uma solução de E-mail.

Se precisar de configurar um sistema de E-mail completo no seu servidor com a capacidade de enviar e receber e-mails no seu próprio domínio, então vá em frente e instalar aplicações como postfix, dovecot.

assinale este artigo:
instale Postfix mail server e Dovecot no Ubuntu ou Debian

Se estiver à procura de um programa de correio mais poderoso use comandos como mailx, swaks, etc., Eles têm as opções necessárias para especificar servidores smtp externos também.

Leave A Comment