O autor voluntariamente contribuíram com este tutorial como parte de Pepipost Escrever para Contribuir programa.
introdução
as notificações estão ficando mais importantes nos dias de hoje para se manter atualizado entre várias atividades online. Além disso, essas notificações podem ser e-mails, SMS ou push. Este tutorial vai demonstrar a maneira mais simples de enviar notificações, em um dos canais mais populares que é o e-mail. Você vai aprender o processo de envio de E-mails do terminal ou um script shell de um sistema operacional Linux, usando algumas das ferramentas CLI populares.
este tutorial irá ajudá-lo a enviar e-mails críticos no nível do servidor, como relatórios Cron, logs de script, registros de clientes, recibo, extrato bancário por e-mail. Existem muitas maneiras de enviar e-mails do servidor, mas vamos explorar a ferramenta que é fácil de instalar e fácil de codificar.
com bibliotecas simples e pequenas configurações, você pode ter uma ferramenta CLI em seu sistema operacional Linux que você pode usar para enviar e-mails do terminal.
pré-Requisitos
- sistema operacional Linux
- Configurações SMTP (servidor de SMTP detalhes e as credenciais de autenticação)
- Seu editor de texto favorito (Opcional)
- Configurar o SMTP do Gmail/pronto com qualquer outro servidor SMTP personalizado detalhes. Neste tutorial, você usará o Gmail SMTP para enviar e-mails, portanto, certifique-se de que;
undefinedundefined
Google configurações de servidor SMTP seria algo parecido com isto:
- SMTP Server/Host: smtp.gmail.com
- SMTP Username:
- senha SMTP:
- Porta de SMTP: 587
- TLS/SSL: Necessário
o Seu tempo para, agora, abra o terminal
Existem várias ferramentas e bibliotecas que você pode instalar para enviar e-mails a partir de um terminal. Poucas das bibliotecas populares são:
- sSMTP
- Mailx
neste tutorial, você vai aprender os passos sobre como instalar e usar o sSMTP para enviar mensagens a partir da sua linha de comando do Linux. Clique aqui, caso você queira aprender como instalar e usar o Mailx para enviar e-mails de sua linha de comando Linux.
Como instalar o sSMTP para enviar e-mails a partir do seu Linux linha de comando (CLI)
Passo 1
Use o comando abaixo para instalar o ssmtp:
sudo apt-get install ssmtp
Opcional:
CentOS os usuários podem usar o comando abaixo para instalar o ssmtp:
sudo yum install ssmtp
CentOS, você poderá ver um erro durante a instalação como “pacote de ssmtp não está disponível”, em tal caso, comando abaixo, vai ser útil para corrigir o problema:
sudo yum --enablerepo=extras install epel-release
Passo 2
uma Vez ssmtp instalado com êxito, você precisa fazer o abaixo global configurações necessárias para o envio de e-mail.
abra o seguinte arquivo no seu editor favorito:
sudo vim /etc/ssmtp/ssmtp.conf
edite o arquivo acima com os detalhes abaixo:
mailhub=smtp.gmail.com:587useSTARTTLS=YESAuthUser=username-hereAuthPass=password-hereTLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
A configuração acima será usada para enviar e-mails usando seu SMTP do Gmail. Caso você queira usar algum outro SMTP de terceiros, mencione o nome do host do mesmo. por exemplo, se você quiser usar Pepipost SMTP, em vez de smtp.gmail.com, você precisa mencionar smtp.pepipost.com no parâmetro mailhub. mailhub é usado para o endereço do servidor SMTP que consiste em duas partes host: porta
Agora você está tudo pronto para enviar e-mails da linha de comando (CLI).
Etapa 3
existem várias maneiras de usar o comando ssmtp para enviar e-mails.
processo 1: Envie e-mails diretamente da linha de comando
para isso, copie e cole o comando abaixo e você estará pronto para enviar e-mails da sua linha de comando:
echo "Test message from Linux server using ssmtp" | sudo ssmtp -vvv
-VVV é a verbosidade para ver os logs ao enviar o e-mail
caso 2: Envie e-mails de um Script de Shell
Você também pode usar o mesmo ssmtp para enviar e-mails de um script de shell. Para isso, abra seu editor preferido e crie um arquivo de script de shell com o nome saymail.copiar e colar o código abaixo:
#!/bin/sh SUBJECT="Test Subject"TO=""MESSAGE="Hey There! This is a test mail"echo $MESSAGE | sudo ssmtp -vvv $TO
certifique-se de definir o acesso de permissão correto ao seu arquivo de script. Caso contrário, aqui está o comando para definir a permissão:
$ sudo chmod 755 mail.sh
agora, o código está pronto para ser executado. Basta executar o script shell usando o comando abaixo:
$ sudo ./mail.sh
espero que agora você possa enviar e-mails usando o script shell também.
abaixo estão alguns erros / exceções que você pode encontrar ao enviar o e-mail usando ssmtp:
erro 1
no caso de enviar o e-mail, se pode obter o erro abaixo como saída:
ssmtp: autorização falhou (535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104-gsmtp)
220 smtp.gmail.com ESMTP u65sm14952769pfu.104 - gsmtp EHLO kali 250 SMTPUTF8 STARTTLS 220 2.0.0 Ready to start TLS EHLO kali 250 SMTPUTF8 AUTH LOGIN 334 VXNlcm5edhbAWU6 dmlzaGFsY2hhasd2dWhhbjIyMTJAZ21haWwuY29t 334 EUEeGFzc3dvfcaqQ6 535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104 - gsmtpssmtp: Authorization failed (535 5.7.8 https://support.google.com/mail/?p=BadCredentials u65smyez14952a76922r5pfui.104 - gsmtp):~/Documents/Scripts$
solução: Nesse caso, tente fazer o seguinte como solução:
- ative “Permitir aplicativo menos seguro” nas configurações de suas contas do google, conforme explicado na seção Pré-requisitos acima.
- as credenciais de login fornecidas podem ser inválidas. Certifique-se de ter as credenciais corretas.
Assim que o problema for corrigido, execute novamente o script de shell e o sucesso saída será algo como isto;
$ sudo ./mail.sh
Saída:
220 smtp.gmail.com ESMTP h8sm1096aae22880pfo.64 - gsmtp EHLO kali 250 SMTPUTF8 STARTTLS 220 2.0.0 Ready to start TLS EHLO kali 250 SMTPUTF8 AUTH LOGIN 334 VXNlcm5edhbAWU6 dmlzaGFsY2hhasd2dWhhbjIyMTJAZ21haWwuY29t 334 UGFzqc3dmvcmQ36 235 2.7.0 Accepted MAIL FROM:<> 250 2.1.0 OK h8smqer10962480pfo.64 - gsmtp RCPT TO:<> 250 2.1.5 OK h8smqer10962480pfo.64 - gsmtp DATA 354 Go ahead h8sm10962880pfo.64 - gsmtp Received: by kali (sSMTP sendmail emulation); Thu, 19 Sep 2019 21:45:14 +0530 From: "root" <> Date: Thu, 19 Sep 2019 21:45:14 +0530 Hey There! This is a test mail . 250 2.0.0 OK 1568909725 h8smqer10962480pfo.64 - gsmtp QUIT 221 2.0.0 closing connection h8smqer10962480pfo.64 - gsmtp