Como configurar um agente de e-mail para e-mail de linha de comando

Conteúdo

Fazer com que seu servidor envie e-mails é uma maneira fácil de receber notificações de scripts bash, aplicativos e tarefas cron. O e-mail de linha de comando funciona de maneira semelhante ao e-mail pessoal e é fácil de configurar e usar.

Como funciona o e-mail de linha de comando?

Quando o e-mail viaja pelos tubos da Internet, geralmente enviado via Simple Mail Transfer Protocol, o SMTP. O servidor que lida com o envio de e-mail é chamado de servidor SMTP e muitos provedores de e-mail gratuitos (Gmail, Yahoo, etc.) fornecer servidores SMTP gratuitamente. Isso é ótimo para este caso de uso, pois você só precisa configurar o aplicativo de linha de comando que realiza o envio.

Este aplicativo é chamado Mail Transfer Agent (MTA) e é responsável pela comunicação com o servidor SMTP. Você precisará autenticar o MTA com o servidor SMTP, que geralmente é tão simples quanto fornecer sua senha ou chave. Mais tarde, o MTA poderá agir como você e enviar e-mails de sua conta.

Se você planeja enviar e-mails para usuários finais, você precisará configurar mais informações com o seu provedor SMTP. Em geral, isso significa verificar seu domínio com autenticação DKIM e SPF, que mostra que você é o proprietário do domínio e não está falsificando seu endereço. Você pode fazer isso com o Gmail, mas se você estiver enviando muitos e-mails, você deve usar uma solução empresarial como Amazon SES.

Como instalar e configurar o Postfix

A solução mais simples para e-mail de linha de comando é usar Postfix como um MTA, usando um servidor SMTP gratuito como o Gmail. Gmail tem uma taxa limitada de 100 e-mails por dia, o que provavelmente é suficiente para notificações de e-mail simples. Se você precisar de mais do que isso, Você pode usar Amazon SES o SendGrid, que devem ser substituições diretas do servidor SMTP do Gmail neste exemplo.

Postfix também pode ser executado seu próprio servidor SMTP, mas é mais difícil de configurar e menos compatível com destinatários externos, a menos que você configure a verificação de domínio.

Instale Postfix y libsasl2-modules, um pacote para gerenciar a autenticação SMTP, do gerenciador de pacotes da sua distribuição. Para sistemas baseados em Debian como Ubuntu, isso seria:

sudo apt-get install postfix libsasl2-modules

Como Postfix é instalado, vai pedir a configuração. Na primeira tela, selecionar “Site”, que irá configurar o Postfix para usar SMTP.

A mensagem a seguir pedirá seu nome de domínio. Você não precisa de um nome de domínio para usar o Postfix, mas você precisará de um para que seus e-mails sejam enviados a partir desse nome de domínio. Neste exemplo, sem especificar o nome de domínio, seus e-mails virão da conta do Gmail que você configurou para o Postfix.

A seguir, deve autenticar o Postfix. tu poderia use a senha do Gmail da sua conta, o que é bom se você criar uma nova conta apenas para Postfix, mas se você estiver usando sua conta pessoal, você vai querer criar um senha de app. Desta forma, a senha pode ser revogada a qualquer momento. Observe que você precisará da autenticação de dois fatores habilitada para usar senhas de app.

Postfix armazena os detalhes de autenticação em /etc/postfix/sasl/sasl_passwd. Este arquivo pode não estar lá por padrão, então você pode precisar criá-lo com touch. Abra-o e cole suas informações no:

[smtp.gmail.com]:587 [email protected]:senha

isso configura postfix para usar o servidor smtp do Google e autenticar com seus dados.

A seguir, Correr postmap sobre sasl_passwd:

sudo postmap /etc/postfix/sasl_passwd

Isso vai gerar um sasl_passwd.db arquivo usado pelo Postfix. Ambos os arquivos armazenam a senha do seu aplicativo em texto simples, então você vai querer restringi-los à raiz, executando chown e chmod:

raiz sudo chown:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

Postfix agora deve estar pronto para ir, mas você deve configurar o arquivo principal de configuração postfix para usar o relé smtp e suas credenciais sasl. Abrir /etc/postfix/main.cf em seu editor de texto favorito e procurar a opção “relayhost”. Altere isso para usar o servidor SMTP do Gmail:

relayhost = [smtp.gmail.com]:587

Mais tarde, no final do arquivo, adicionar as seguintes linhas para configurar sasl e usar seu arquivo de senha.

# enable SASL authentication
smtp_sasl_auth_enable = yes
# proibir métodos que permitem autenticação anônima.
smtp_sasl_security_options = noanonymous
# where to find sasl_passwd
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
# Enable STARTTLS encryption
smtp_use_tls = yes
# where to find CA certificates
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Salve este arquivo, em seguida, reinicie Postfix com systemctl:

sudo systemctl restart postfix

postfix agora deve ser totalmente configurado e definido como o manipulador de correio padrão em seu sistema. Você pode experimentá-lo usando o próprio Postfix sendmail comando:

sendmail [email protected]
FROM: [email protected]
SUBJECT: Olá do seu servidor!
Este é um e-mail de teste enviado do seu servidor pelo Postfix.
.

Verifique sua caixa de entrada (ou bandeja de saída) e você deve ver um novo e-mail. Você pode correr sudo tail -f /var/log/mail.log (o mail.err) para verificar os logs de correio.

O Postfix irá se configurar como o controlador de e-mail padrão do seu servidor. Qualquer aplicativo ou programa que precise enviar e-mails agora deve usar o Postfix por padrão, como PHP (que usa Postfix sendmail). Alguns podem precisar de configuração adicional, que normalmente diz ao aplicativo para usar o Postfix.

Se você não quer usar sendmail (já que é um pouco desajeitado) você pode instalar outro cliente de e-mail. Um bom cliente é mutt, que suporta o envio de arquivos como anexos e usará Postfix por padrão. A sintaxe para envio simples é:

eco "conteúdo de e-mail" | vira-lata "assunto do email" destinatá[email protected]

E para anexar arquivos, deve separar o -a marcar os valores do destinatário com um traço duplo “--“:

eco "conteúdo de e-mail" | vira-lata "assunto do email" -um / caminho / para / arquivo -- destinatá[email protected]

Que aparecerá em sua caixa de entrada com o arquivo anexado, presumindo que você não alcance nenhum limite de tamanho de arquivo imposto pelo servidor SMTP:

Qualquer que seja o cliente de e-mail que você escolher, qualquer um deles deve ser utilizável a partir de scripts de shell, trabalhos cron e qualquer outro lugar que você possa configurar para executar comandos Unix.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.