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.