Protocolo e Agente SMTP
Em Redes de Computadores estudamos os chamados Protocolos. De forma simples, são padrões que definem como deve ser a semântica e a sintaxe das mensagens disparadas na rede e, se tudo estiver certo, estabelece a comunicação entre os dois sistemas. Dentre tantos, nesse artigo vamos estudar mais sobre o protocolo SMTP, usado para envio de e-mails, e ver como podemos fazer uma simples demonstração de uso!
É importante saber que a comunicação em rede acontece por camadas onde cada camada realiza uma tarefa diferente e específica que prepara a mensagem para ser transmitida com sucesso. Esse conjunto de camadas pode ser chamado de “pilha”, no qual um dos mais conhecidos é o TCP/IP.
A pilha TCP/IP define 4 camadas: Aplicação, Transporte, Rede e Interface de Rede.
Na camada de Aplicação é onde acontece algumas solicitações como acessar uma página Web e enviar e-mail. Independente da solicitação, deve-se buscar o protocolo apropriado que realize a função desejada. Entretanto, vamos focar agora na necessidade do envio de e-mail!
SMTP
O Simple Mail Transfer Protocol (Procolo de Transferência de Correio Simples) é dedicado no envio de correios eletrônicos, que na comunicação de suas mensagens apenas faz o envio delas, e não recebe. Isso acontece porque o SMTP não possui a capacidade de criar uma fila de correios a medida que estes fossem sendo recebidos, por isso no envio de e-mails temos de um lado um agente SMTP disparando a mensagem e do outro lado temos outros protocolos que conseguem capturar e disponibilizar os correios, por vezes pode ser o protocolo POP3 ou IMAP.
Para fazer esse envio de mensagem, o computador deve se conectar com um servidor SMTP, que se conecta com o servidor SMTP usado pelo destinatário, que vai dar continuidade na entrega da mensagem.
Agente SMTP
Vamos agora instalar e fazer alguns testes que ajudarão na compreensão do assunto e, apesar de simples, pode ser base de funcionamento para diversas aplicações.
Aqui nós vamos instalar um agente chamado sSMTP, que captura a mensagem e envia para um servidor SMTP externo que nós mesmos podemos apontar. A vantagem disso é sua leveza, por realizar apenas a captura e entrega do correio para outro servidor externo ao seu computador, ele demanda menos recursos da máquina. As instruções a seguir usam o servidor SMTP do Gmail e o sistema operacional Linux Mint:
Passo 1: instalar o agente SMTP:
Comandos para instalar o agente na sua máquina:
Passo 2: configurar a conexão com o servidor SMTP:
Vai ser necessário editar o arquivo ssmtp.conf que está dentro da pasta /etc/ssmtp/
As permissões de arquivo inicialmente não permitirão editá-lo, então vamos alterar as permissões.
Abra o arquivo ssmtp.conf no seu editor de texto de preferência e edite da seguinte forma:
Se algum desses campos não existirem no arquivo você precisará digitar. Agora que já editamos devemos fechar o arquivo e retornar às permissões anteriores:
Passo 3: Permitir sua conta Google receber conexão externa:
Acesse o Gmail informado no passo anterior e siga até ao Gerenciamento da Conta. Clique em Segurança e siga até em “Acesso a apps menos seguros”. Entre nessa configuração e permita o acesso. Atualize a página e certifique de que o recurso continua habilitado.
Para fazer um envio, abra seu terminal e digite:
echo “Teste de envio de e-mail” | ssmtp outroemail
Substitua o outro e-mail por alguma conta que você tenha acesso e que seja diferente da informada no passo 2, assim você pode checar se o envio foi executado com sucesso!
Toda vez que você alterar a senha do e-mail usado no passo 2, ou se desejar alterar a conta de e-mail, deverá refazer o passo 2 e 3.
Apesar de toda a simplicidade, outros projetos podem ser feitos totalmente baseados nisso. Veja um programa em Python que faz uma interface entre o usuário e o agente SMTP, ou seja, uma aplicação de envio de e-mails. Clique aqui!
Para noções mais gerais sobre o SMTP, veja aqui [https://blog.saphir.com.br/smtp-o-que-e-e-como-funciona/].
Bom estudo/trabalho, abraço!