- Um grande número de aplicativos, por exemplo, cron, etc, enviará e-mail para o root se houver erros.
- Eu vi alguns tutoriais que envolvem a instalação do postfix + um pouco de configuração para que sejam encaminhados para o Gmail ou alguma alternativa. Muito trabalho de configuração.
- Como o postfix detecta que há novos e-mails para root? Verificando alguma pasta? Ou?
- Em uma nova instalação do Ubuntu, o cron ainda pode enviar e-mail para o root. Como funciona?
- Desejo saber disso e interceptar esses e-mails para o root e, em seguida, encaminhá-los para o telegrama/webhook ou algo assim.
Possível? Quero dizer, como o postfix faz isso?
O Postfix não "intercepta" os e-mails. Ele fornece
sendmail
as chamadas do sistema local para enviar e-mailroot
para cronjobs e outras tarefas de entrega de e-mail local. Por outro lado, uma compreensão profunda de como o Postfix processa e-mail é fundamental para uma de suas perguntas, então continue lendo.Estas não são perguntas, então vou ignorar essas partes.
Em primeiro lugar, como eu disse, você não "intercepta" essas mensagens. Você configura o Postfix ou o MTA (Mail Server) em seu sistema para processar as mensagens de acordo. Nesse caso, você configuraria o Postfix para que as mensagens
root
fossem canalizadas para o código personalizado que ele chama para processar as mensagens em itens que são colocados em um webhook ou que são entregues ao Telegram ou qualquer processo que você deseja usar. Esta é a única maneira de fazer esse trabalho.Uma nova instalação do Ubuntu instala a funcionalidade básica do mailer no sistema apenas para entrega de e-mail
root
para tarefas cronjob. Normalmente, este é algum aplicativo que fornecesendmail
localmente. Os processos internos reais de como isso funciona variam com base em qual provedor para osendmail
script/binário existe, mas como o Postfix faz isso, continue.Sem entrar muito em profundidade, o Postfix possui vários componentes em seu design e arquitetura que lidam com correio em geral. Isso é melhor descrito e visível aqui no site principal do Postfix: https://www.postfix.org/OVERVIEW.html - Se você realmente quiser entender como os internos funcionam, eu começaria aqui nessa página e leria a página inteira pois realmente explica tudo em profundidade.
Mas farei o meu melhor para incluir pedaços de lá.
Para começar, a entrega de e-mails ocorre em vários mecanismos antes de atingir a fila de entrada, todos tratados como componentes 'ativos' do processo Postfix. Conforme evidenciado neste 'diagrama' das páginas do Postfix:
As mensagens de e-mail da Internet, etc., são todas entregues a um processo de "limpeza". As mensagens entregues localmente normalmente usam a chamada
sendmail
(que o cron de fato chama!) , redirecionamento de contas com base na configuração do Postfix, etc.). Em seguida, ele vai para a fila de entrada, que é processada internamente pelos mecanismos de entrega do Postfix.postdrop
maildrop
Esse processador de limpeza alerta o gerenciador de filas do Postfix de que há coisas para coletar e, em seguida, o gerenciador de filas processa esses itens. No entanto, esses são componentes internos do Postfix e acontecem independentemente de o e-mail ser da Internet ou localmente.
FINALMENTE, para qualquer entrega de e-mail, o Postfix entrega tudo para a
incoming
fila e alerta o gerente do sistema interno do Postfix de que há itens para revisar na fila. Isso acontece de forma transparente embora.Uma vez na fila de entrada, ele passa por mais processos antes de ser entregue:
FINALMENTE, com a entrega de correio local sendo processada por meio de
local
,virtual
oupipe
chamadas - local é a entrega direta a uma caixa de correio nos locais da caixa de entrada configurados pelo Postfix (o padrão cai,/var/mail/USER/INBOX
acredito, mas não me cite), e é isso que acontece para local entrega de correioroot
para cronjobs, etc.Obrigado por adicionar qual agente de e-mail é. Consulte 'man aliases' para ver o que o postfix diz sobre aliases de correio.
/etc/aliases é um arquivo que contém uma lista de aliases de usuários que estão usando o sendmail para redirecionar emails.
por exemplo
Criaria um alias para todos os e-mails direcionados ao usuário 'root' para o usuário 'mouser'.
O Postfix não "intercepta" o e-mail. Para que o sistema seja capaz de lidar com qualquer e-mail, você precisa de um servidor de e-mail instalado. O Postfix é um desses servidores de correio (outros são, por exemplo, Exim ou sendmail).
Quando o cron (ou qualquer outro aplicativo) deseja enviar e-mail, ele chama um servidor de e-mail para fazê-lo (tecnicamente, ele chama o
/usr/sbin/sendmail
binário, que faz parte do servidor de e-mail). É assim que o Postfix (ou qualquer outro servidor de e-mail) "detecta" que há e-mail para manipular - é explicitamente solicitado pelo aplicativo a entregar esse e-mail.Sem um servidor de e-mail, o cron não será capaz de enviar nenhum e-mail e apenas registrará esse fato no arquivo de log. Em uma nova instalação do Ubuntu, não há servidor de e-mail instalado por padrão, e o cron não envia nenhum e-mail para o root (confirmado em várias máquinas nas quais instalei várias versões do Ubuntu) - é claro, desde que estejamos falando sobre o Ubuntu para desktop lançamentos (se você apenas mencionar "Ubuntu" sem nenhum adjetivo específico, presume-se que seja o lançamento padrão para desktop).
No Ubuntu Server , provavelmente algum servidor de e-mail é instalado por padrão, portanto, o cron é capaz de enviar e-mail para o root. Como não uso o Ubuntu Server, não sei qual é o servidor de email. Você deve determinar qual é você mesmo, olhando a lista de pacotes instalados.
Se você deseja instalar o Postfix, deve desinstalar o servidor de correio atualmente instalado (é possível que a instalação do Postfix o desinstale automaticamente, mas não tenho certeza), pois dois servidores de correio diferentes não podem coexistir na mesma máquina. A instalação do Postfix substituirá seu
/usr/sbin/sendmail
binário atual de seu servidor de correio atual por um novo/usr/sbin/sendmail
binário que faz parte do Postfix. No entanto, você não precisa substituir seu servidor de correio atual pelo Postfix para encaminhar mensagens para qualquer outro lugar, porque praticamente todos os servidores de correio têm recursos de encaminhamento semelhantes. O/etc/aliases
arquivo descrito na outra resposta deve funcionar da mesma maneira, independentemente do servidor de email usado.Se você colocar a seguinte linha no seu
/etc/aliases
arquivo:ele encaminhará o e-mail do root para o Gmail, mas o Gmail pode não aceitar esse e-mail devido a vários motivos que não abordarei aqui (mas esses são os motivos pelos quais os tutoriais que você pode encontrar na Internet são tão complicados). O encaminhamento para outros serviços pode dar melhores resultados.
Se você quiser que o e-mail do root seja processado por algum script (por exemplo, um script que o poste no Telegram), use a seguinte linha em
/etc/aliases
:Finalmente, você deve levar em consideração que geralmente é fortemente desencorajado encaminhar o e-mail do root (é até mesmo escrito em um comentário no
/etc/aliases
arquivo padrão). A conta root é tratada pelo servidor de e-mail como um destino de e-mail de "último recurso": se, por qualquer motivo, o e-mail não puder ser entregue ao destinatário ou devolvido ao remetente, ele será enviado para a conta root. Se você encaminhar o e-mail do root e ocorrer um erro durante o encaminhamento, você não obterá nenhum destino de "último recurso" e o e-mail será perdido.