Quando tento instalar postfix
no meu sistema de desktop doméstico, recebo uma caixa de diálogo de configuração com as seguintes opções 1 :
- Sem configuração: Deve ser escolhido para deixar a configuração atual inalterada.
- Site da Internet: O correio é enviado e recebido diretamente usando SMTP.
- Internet com smarthost: o correio é recebido diretamente usando SMTP ou executando um utilitário como fetchmail. O correio de saída é enviado usando um host inteligente.
- Sistema satélite: Todo o correio é enviado para outra máquina, chamada 'smarthost', para entrega.
- Apenas local: O único correio entregue é o correio para usuários locais. Não há rede.
Meu principal interesse é ter uma maneira de programas não interativos executados em minha área de trabalho (principalmente daemons e cron jobs) enviarem notificações para meu celular (para meu endereço de e-mail atual ou para o cliente SMS em meu celular).
Seria muito conveniente se tais notificações também pudessem ser enviadas localmente para o root
usuário, mas este é um requisito secundário.
Meu sistema de desktop se conecta à Internet por meio de um ISP (Xfinity).
Suponho que a opção 1 está descartada desde o início.
O requisito de poder enviar e-mails para meu endereço de e-mail atual (ou seja, não "local") exclui a opção 5.
Isso deixa as opções 2, 3 e 4, mas não consigo descobrir nas descrições acima quais devo escolher.
EDIT: Há um erro de digitação (que, infelizmente, não consigo mais corrigir) na descrição da recompensa; onde diz
... o que é exatamente o "site de internet" referido na opção ( 1 ),...
deveria estar
... o que é exatamente o "site de internet" referido na opção ( 2 ),...
EDIT 2: Depois de ler a primeira resposta à minha pergunta, percebi que a descrição da recompensa que escrevi não é explícita o suficiente. Nesta descrição, dou valores (fictícios, mas realistas) para meu endereço de e-mail, meu ISP e meu nome de host. Também solicito evitar valores de espaço reservado como www.example.org
. Eu coloquei todas essas estipulações na descrição da recompensa porque gostaria que a resposta incluísse um arquivo de configuração postfix para o caso de uso especificado na pergunta original. Lamento não ter dito isso explicitamente na descrição da recompensa (embora seja o que eu quis dizer com "instruções detalhadas").
1 As descrições das várias opções são copiadas literalmente da caixa de diálogo.
Principais opções explicadas
Essa opção exige que você tenha um nome de domínio totalmente qualificado e acesso total para modificar os registros DNS para esse nome de domínio, pois esse método requer a adição de um registro MX e um DNS reverso para enviar e receber emails.
Essa opção requer que você tenha um nome de domínio totalmente qualificado, mas não necessariamente acesso total para modificar os registros DNS desse nome de domínio. Você paga para provedores de serviços de e-mail ou smarthosts para enviar e-mails em seu nome e fornecer uma rota/método para enviar e-mails recebidos para sua máquina, manipulando o MX e outros registros DNS para seu nome de domínio ou recebendo-os em seus servidores e fornecendo a você com endereço, porta e credenciais do servidor de e-mail para que você possa buscar periodicamente e-mails recebidos usando diferentes protocolos como POP e IMAP.
Esta opção não exige que você tenha um nome de domínio totalmente qualificado nem acesso para modificar os registros DNS. Isso é o que serve ao seu propósito, conforme descrito em sua pergunta .
Configurando uma retransmissão de e-mail
1. Configurações gerais
Você pode reconfigurar o postfix e escolher a opção correta assim:
Nas telas de configuração, você verá:
Tipo geral de configuração de correio: A partir disso, escolha o sistema Satellite .
Nome de correio do sistema: Entre o nome do host da sua máquina que provavelmente será exibido por padrão.
Host de retransmissão SMTP (em branco para nenhum): Não importa neste estágio, pois você o definirá novamente quando modificar
/etc/postfix/main.cf
, portanto, deixe o padrão.Destinatário de e-mail raiz e postmaster: Deixe em branco para ter e-mails locais
postmaster
definidos em/etc/aliases
entregues/var/mail/nobody
ou defina o usuário do sistema para recebê-los... Isso não tem nada a ver com retransmissão de e-mails. Isso é para lidar com e-mails enviados localmente para, por exemplo, root@localhost ou outras contas de usuários locais que possam estar nas/etc/aliases
quais terão algo assim:Outros destinos para os quais aceitar e-mail (em branco para nenhum): Estes são os nomes de host que sua instalação do postfix aceitará e-mails para eles... Portanto, deixe isso no padrão, que será todos os nomes de host possíveis apenas para sua máquina atual.
Forçar atualizações síncronas na fila de e-mail?: Isso diz ao postfix para implementar algum tipo de sistema de journaling interno que o tornará mais lento, mas necessário apenas quando seu sistema de arquivos não for um sistema de arquivos com journaling, o que não é o caso do sistema de arquivos ext4 do Ubuntu ... Não .
Redes locais: Semelhante a "Outros destinos para aceitar correio" acima... Este é um recurso de segurança para que outros hosts em sua rede ou fora dela não possam enviar e-mails através de sua instância postfix... Portanto, deixe-o como padrão.
Limite de tamanho da caixa de correio (bytes): Auto-explicativo... Eu recomendo que você deixe no padrão, ou seja, ilimitado.
Caractere de extensão de endereço local: deixe-o como padrão, pois os provedores de e-mail basearão suas instruções específicas para integração postfix neste padrão.
Protocolos de Internet a serem usados: Deixe em tudo , a menos que você saiba o que está fazendo... tudo deve funcionar bem.
Vale a pena mencionar que se você editar posfácios
/etc/postfix/main.cf
então não importa qual opção você escolheu durante a configuração inicial acima e muitos guias aconselham escolher opções diferentes ... isso pode causar alguma confusão. Por exemplo, um guia diz para você escolher o Site da Internet e depois diz para modificar e definir o que mudará o postfix de um servidor de correio autônomo para um servidor de correio de retransmissão, ou seja, como se alterasse a opção para Sistema Satélite !/etc/postfix/main.cf
relayhost
Para a opção de retransmissão
/etc/postfix/main.cf
conterá algorelayhost
definido para um provedor de e-mail como este:2. Configurações específicas do provedor de e-mail
Depois disso, siga as instruções específicas do seu provedor de e-mail para a integração do postfix, como:
estas instruções fáceis para configurar o postfix com retransmissão para o Gmail .
estas instruções fáceis para configurar o postfix com retransmissão para o Yahoo .
O processo deve ser semelhante para outros provedores de e-mail se eles oferecerem esse recurso. Se sua conta de e-mail for de outro provedor, consulte a documentação deles referente a
relayhost
endereço, porta, segurança e autenticação.Por favor, preste atenção aos requisitos específicos do provedor de e-mail de retransmissão, como, por exemplo, habilitar aplicativos menos seguros para o Gmail ou, caso contrário, o postfix terá o acesso e a conexão negados ao Gmail.
Recursos extras
Um guia passo a passo para enviar e-mail com
postfix
o Yahoo Mail.Estou postando o (espero) guia completo para enviar e-mail do Yahoo mail , conforme solicitado . Este guia é um pouco diferente do que você precisa se estiver usando o Gmail , conforme mostrado aqui , e possivelmente outros servidores também, mas essa especificidade é crucial para que funcione .
Nota: Eu realmente testei e recebi e-mail com sucesso no meu endereço de destino . Também funciona bem com endereços locais (de saída, de entrada) .
As duas respostas de Raffa ( 1 , 2 ) e outros comentários me ajudaram muito. Mas ainda havia leitura e ajustes significativos necessários para fazê-lo funcionar.
Instalar
postfix
e outros pacotes.A configuração pós-instalação aparecerá. Se não, use
$ sudo dpkg-reconfigure postfix
. Para as telas sucessivas, use: 1. Sistema satélite (mas talvez irrelevante, pois você modificará o arquivo de configuração do postfix posteriormente), 2.myubuntubox
, 3.[smtp.mail.yahoo.com]:465
, 4.root
, 5 e seguintes: deixe os padrões.Habilite sua conta do Yahoo para interagir
postfix
com uma senha de aplicativo . Esta é uma senha de uso único, que evita deixar a senha do Yahoo mail no seu PC. Vá para https://login.yahoo.com/account/security , Account Security -> App Password e gere uma senha. Você terá que usá-lo mais tarde. Isso funciona com certeza se não estiver usando a verificação em duas etapas e possivelmente com a 2SV também.Observe que no Gmail "Senhas de aplicativo só podem ser usadas com contas que tenham a verificação em duas etapas ativada". ( fonte ). Nesse caso, você usará a senha do aplicativo , pois
postfix
, como muitos outros aplicativos, é um "aplicativo menos seguro" .Adicione as seguintes linhas a
/etc/postfix/main.cf
Se presente em
/etc/postfix/main.cf
, linha de comentáriocom uma marca de hash inicial
#
para evitar uma mensagem de aviso. Não estou postando o arquivo completo. Se você encontrar problemas com estas instruções, poste comentários.Criar/editar
/etc/postfix/sasl_passwd_yahoo
para que contenha<password>
deve ser substituído pela senha do aplicativo gerada .Use os seguintes comandos
Ao criar/editar
/etc/postfix/regex_map_yahoo
, seu conteúdo deve serEnviar e-mail com, por exemplo,
Na verdade, nenhuma dessas opções de configuração pode ser usada diretamente em uma máquina típica de usuário final doméstico. A opção 2 funciona bem se você tiver um servidor hospedado com seu próprio nome de domínio no qual você configura o Postfix. As opções 3 e 4 funcionam bem, por exemplo, em uma LAN corporativa, onde você tem um domínio "real" reconhecível no DNS do qual suas máquinas clientes fazem parte (aliás, não entendo completamente a diferença entre as opções 3 e 4 apenas da descrição - eu precisaria ver os arquivos de configuração reais gerados por essas opções para saber com certeza o que elas realmente significam).
Independentemente do que você escolher, você provavelmente precisará modificar os arquivos de configuração do Postfix manualmente após a configuração inicial. Na verdade, como você terá que modificar a configuração de qualquer maneira, a opção 1 também não está descartada, ao contrário do que você assumiu.
O e-mail é provavelmente o mais complicado de configurar de todos os serviços de rede e, portanto, aconselho a nunca confiar "cegamente" em qualquer padrão que a configuração automática forneça, mas aprenda como a configuração do Postfix funciona e faça todas as correções necessárias no arquivo de configuração ( e) manualmente. E você precisa testar, testar e mais uma vez testar sua configuração para ter certeza de que tudo funciona conforme o esperado. A configuração de e-mail não é algo que você pode simplesmente "copiar e colar" sem entender como funciona.
Um bom começo é http://www.postfix.org/BASIC_CONFIGURATION_README.html - este documento faz algumas perguntas básicas que você precisa responder antes de começar a configurar o Postfix e explica os conceitos básicos da configuração. Depois de ler isso, dê uma olhada em http://www.postfix.org/STANDARD_CONFIGURATION_README.html - ele apresenta configurações para vários cenários típicos. No entanto, como no menu de configuração que você perguntou, nenhum desses cenários se aplica totalmente ao seu caso.
Provavelmente mais próximo de suas necessidades é o cenário descrito como "Postfix em um cliente nulo", no entanto, há duas coisas que não são abordadas. Um "cliente nulo" neste exemplo é uma máquina que: a) não recebe nenhum e-mail da rede; b) não entrega nenhum e-mail localmente - no entanto, se você precisar disso, isso pode ser alterado (mas não estou abordando isso aqui, pois esta resposta já é muito longa); c) envia todos os emails de saída para smarthost , ou seja. um servidor que processa todos os emails para o domínio que você está enviando - no seu caso provavelmente será o servidor Yahoo, o mesmo que você usa ao enviar emails do seu cliente de email.
Vou elaborar um pouco mais tarde por que você precisa usar o smarthost. A única coisa importante que está faltando aqui é que, no seu caso, seu Postfix precisará se autenticar no smarthost. Isso é abordado aqui: http://www.postfix.org/SOHO_README.html
Você precisa combinar todas as informações desses documentos que são relevantes para o seu caso para obter um arquivo de configuração único, razoável e utilizável.
Por que é tão complicado? Geralmente, porque sua máquina não possui um nome de domínio "adequado" que será reconhecido na Internet. Você pode usar qualquer opção - 2,3 ou 4 - na configuração inicial e seu Postfix será capaz de enviar e-mails, mas ser capaz de enviar e-mails é uma coisa; fazer com que seu e-mail seja realmente entregue ao destino é uma coisa diferente. Várias medidas anti-spam comumente usadas na Internet podem fazer com que seu e-mail seja simplesmente rejeitado pelo servidor de recebimento se você usar a configuração padrão. Por isso são necessárias modificações.
A origem do problema é que todo e-mail que você envia precisa ter algum endereço de e-mail do remetente. Se a sua máquina tivesse um nome de domínio "legítimo" atribuído a ela, você poderia apenas configurá-la usando a opção 2 e enviar e-mails usando usuário @ domínio como endereço de e-mail, onde usuário é qualquer nome de usuário em sua máquina que envia o e-mail e domínio é o nome de domínio atribuído à sua máquina.
Mas você não tem um domínio confiável . Então, a primeira coisa a considerar é qual endereço de remetente você deseja usar para seus e-mails? Provavelmente a opção mais segura é usar seu endereço de e-mail real, [email protected]. Caso contrário - se você não definir nenhum endereço de remetente no programa de envio - o Postfix criará algum nome de domínio padrão e enviará, por exemplo, correio do seu cron job como "[email protected]" ("localdomain" é literal aqui ). Como o domínio "myubuntubox.localdomain" não existe na Internet, o servidor receptor provavelmente não aceitará esta mensagem e você verá uma rejeição no seu log do Postfix.
Portanto, você deve garantir que todos os programas que enviarão e-mails forneçam um endereço de remetente correto. Essa coisa está basicamente fora do escopo da configuração do Postfix. Você precisa configurá-lo em cada programa ou script que envia e-mails. É possível fazer o Postfix reescrever qualquer endereço do remetente usado para [email protected], mas é um recurso mais complicado e você já deve ter uma configuração funcional (e saber algo sobre como configurar o Postfix) antes de tentar isso. Então é melhor fazê-lo no lado do cliente.
Mas enviar com endereço de e-mail do domínio yahoo.com também é problemático porque o endereço IP da sua máquina não pertence ao conjunto de endereços atribuídos ao Yahoo. O servidor de recebimento pode detectá-lo e também rejeitar seu e-mail. E é por isso que você precisa usar um host inteligente - é o que está acontecendo nas opções 3 e 4. Sua máquina passará todos os e-mails para o host inteligente, e o host inteligente os enviará mais adiante.
No entanto, você não pode simplesmente passar o e-mail para o servidor do Yahoo como na configuração padrão para "Postfix em um cliente nulo", porque este exemplo pressupõe que o smarthost "confia" em sua máquina e aceitará e-mails dessa máquina com o domínio do smarthost no remetente Morada. Mas o servidor do Yahoo não vai apenas confiar em sua máquina e deixá-la enviar como yahoo.com. É quase certo que ele rejeitará esse e-mail.
E aqui vem a terceira e mais complicada parte: você não precisa enviar seu e-mail para o smarthost, mas enviá -lo. O envio é o que os clientes de e-mail como o Outlook ou o Thunderbird fazem. Eles não se conectam à porta de e-mail padrão no servidor (25), mas à porta de envio especial (587 ou 465, dependendo do método de criptografia que o cliente usa), autenticam -se no servidor usando seu login e senha do Yahoo e em seguida, prossiga para enviar e-mail. Depois que o cliente se autentica no servidor, o servidor confia nele e aceita e-mails dele.
Da mesma forma, seu Postfix precisa se autenticar no seu smarthost, ou seja. Servidor Yahoo. Para conseguir isso, você precisa instalar (além do Postfix) o mecanismo de autenticação (Cyrus SASL) e configurar o Postfix conforme descrito em http://www.postfix.org/SOHO_README.html
O problema
"Meu principal interesse é ter uma maneira de programas não interativos em execução no meu desktop (principalmente daemons e cron jobs) enviarem notificações para meu celular (para meu endereço de e-mail atual ou para o cliente SMS no meu celular). "
A alternativa
Na minha resposta para Como faço para configurar o Cron para enviar e-mails? [duplicado] Eu usei
ssmtp
. No mesmo tópico, você encontrará uma solução usandopostfix
que pode lhe interessar.Quanto a receber mensagens de texto de celular, tenho outra resposta:
Se você está interessado em buscar uma solução apenas postfix, aqui está um bom tutorial: