Script Bash para enviar e-mail

Bash Script Send Email



O e-mail é um meio de comunicação muito comum no mundo de hoje. Qualquer pessoa pode se comunicar ou compartilhar facilmente qualquer documento com amigos, familiares e colegas enviando o e-mail. Geralmente, as pessoas usam qualquer servidor de e-mail gratuito como Gmail, Yahoo, Hotmail etc. para enviar o e-mail. Mas você pode enviar e-mail da linha de comando facilmente no sistema operacional Linux. Existem muitas maneiras de enviar e-mail no Linux. Algumas maneiras comuns e fáceis de enviar e-mail no sistema operacional Ubuntu a partir do terminal são mostradas neste tutorial.

Inicialização:

Muitos comandos do Linux estão disponíveis para enviar e-mail da linha de comando ou usando um script bash. Mas qualquer comando de envio de e-mail não funcionará se nenhum servidor SMTP estiver configurado corretamente no sistema. Você pode configurar seu próprio servidor SMTP para enviar e-mail da linha de comando ou pode usar qualquer servidor SMTP gratuito de qualquer provedor de serviços de e-mail conhecido, como Gmail ou Yahoo. O servidor SMTP de uma conta do Gmail é usado neste tutorial. Para fazer esta tarefa, você deve selecionar uma conta do Gmail e habilitar a opção 'Permitir que aplicativos menos seguros' para essa conta enviem o e-mail. Você pode visitar o seguinte tutorial para habilitar esta opção.







https://linuxhint.com/how-to-send-email-from-php/



Depois de habilitar esta opção, você deve abrir o arquivo ‘/etc/ssmtp/ssmtp.conf’ com privilégio ‘root’ e adicionar as seguintes linhas no final do arquivo. Você deve definir seu endereço de e-mail como ‘AuthUser’ e sua senha de e-mail como ‘AuthPass’ para concluir a configuração.



UseSTARTTLS= SIM
FromLineOverride= SIM
raiz= admin@example.com
mailhub= smtp.gmail.com:587
AuthUser= nome de usuário@gmail.com
AuthPass= senha

Exemplo-1: usando o comando Sendmail

Um dos comandos populares de envio de e-mail do Linux é `sendmail`. O usuário pode facilmente enviar e-mail a partir da linha de comando usando este comando. Se o pacote Sendmail não estiver instalado no sistema, execute o seguinte comando para instalar o pacote.





$sudoaptoinstalarssmtp

Suponha que o conteúdo do e-mail seja armazenado em um arquivo denominado ‘email.txt’ com o seguinte conteúdo. Aqui, o texto após o ‘Assunto:’ será enviado como assunto do email e o restante será enviado como corpo do email.

email.txt



Assunto: Enviando e-mail usando sendmail
Testando corpo de e-mail

Execute o comando `sendmail 'com o endereço de e-mail do destinatário como o comando a seguir.

$enviar correionome do usuário@gmail.com<email.txt

Exemplo-2: Usando o comando ‘mail’

O comando mais comum para enviar e-mail no Linux é o comando `mail`. Este comando não é instalado no Ubuntu por padrão. Execute o seguinte comando para instalar o comando `mail`.

$sudoaptoinstalarmailutils

O comando a seguir mostrará a versão deste comando se ele estiver instalado no sistema.

$correspondência-V

A opção ‘-s’ é usada no comando `mail` para definir o assunto do e-mail. Execute o comando `mail 'pela opção' -s 'com o assunto do e-mail e o endereço de e-mail do destinatário como o comando a seguir. Ele pedirá Cc: endereço. Se você não quiser usar o campo Cc: mantenha-o em branco e pressione Enter. Digite o corpo da mensagem e pressione Ctrl + D para enviar o e-mail.

$correspondência-s 'sujeito'nome do usuário@gmail.com

Se você deseja adicionar o corpo da mensagem de e-mail ao comando, use ‘<<<’ operator like the following command.

$correspondência-s 'Assunto da mensagem'nome do usuário@gmail.com<<< 'testando o corpo da mensagem'

Você também pode adicionar o endereço de e-mail do remetente com o comando `mail` usando a opção‘ -a ’. O comando a seguir enviará o e-mail com o assunto, 'assunto da mensagem', nome do remetente e endereço de e-mail, 'Admin<[email protegido]> ’E o endereço de e-mail do destinatário,[email protegido]e o corpo da mensagem, 'mensagem de teste'.

$ mail-s 'Assunto da mensagem' -paraDe: Admin <admin@example.com >
nome do usuário@gmail.com<<< 'mensagem de teste'

Você também pode enviar o corpo de uma mensagem de e-mail usando o comando echo e pipe (|). O comando a seguir usa o comando pipe (|) para enviar o corpo da mensagem.

$jogou fora 'mensagem de teste' |correspondência-s 'Assunto da mensagem'nome do usuário@example.com

O e-mail pode ser enviado para vários destinatários usando o comando `mail` e adicionando os endereços dos destinatários, separando-os por vírgula. O comando a seguir será enviado por e-mail para dois destinatários.

$correspondência-s 'Email de teste'nomedeusuario1@exemplo.com, nomedeusuario2@example.com<test.txt

Exemplo-3: Usando o comando `mutt`

Como o comando `mail`, o comando` mutt` não é instalado no Ubuntu por padrão. Execute o seguinte comando para instalar o comando `mutt`.

$sudoaptoinstalarvira-lata

O comando `mutt` funciona de forma semelhante ao comando` mail`, mas o comando `mutt` tem seu próprio editor para enviar o e-mail. Execute o seguinte comando com o endereço de e-mail válido para enviar o e-mail.

$jogou foramensagem de teste|vira-lata-s 'Email de teste'nome do usuário@example.com

Você pode anexar qualquer arquivo usando a opção ‘-a’ com o comando `mail` ou` mutt`. O comando a seguir anexará o arquivo items.txt ao enviar o e-mail.

$jogou fora 'mensagem de teste' |vira-lata-s 'Assunto da mensagem' -paraitems.txt-nome do usuário@gmail.com

Exemplo 4: Usando o comando 'SSMTP'

Outro comando de e-mail é o comando `ssmtp`. Se ssmtp não for instalado antes, instale o pacote primeiro. O comando de instalação para ssmtp é mostrado no exemplo-1. Os comandos ssmtp e sendmail funcionam de forma semelhante.

Execute o seguinte comando com o endereço de e-mail válido. Digite o assunto e o corpo do e-mail. Pressione ctrl + D para sair e enviar o e-mail.

$nome de usuário ssmtp@gmail.com

Exemplo 5: Usando o Comando mailx

Você pode enviar conteúdo HTML como corpo de email sem apenas enviar a mensagem de texto. Crie um arquivo HTML chamado ‘test.html’ para usar como corpo da mensagem.

test.html

< html >
< corpo >>
< h3 >Envio de Email</ h3 >
< faço Tamanho='2' cor='internet'>Testando o corpo da mensagem</ faço >
<</ corpo >
</ html >

O comando `mailx` funciona como o comando` mail`. Você tem que mencionar Content-Type como text / html para enviar conteúdo HTML como o corpo da mensagem no comando `mailx`. O comando a seguir enviará o conteúdo do arquivo ‘test.html’ como o corpo da mensagem de e-mail.

$ mailx-para 'Content-Type: text / html' -s 'Enviando e-mail usando mailx'
<test.html'[email protegido]'

Quando você verificar a caixa de entrada da conta de e-mail do destinatário, a lista de e-mails será mostrada como a imagem a seguir.

Conclusão

Depois de praticar os comandos acima corretamente, espero que o leitor seja capaz de enviar e-mail da linha de comando facilmente no Linux.