Servidor de email Postfix, usando o mysql para mynetworks

2

Eu tenho meu próprio servidor, com postfix como servidor de email. Meus clientes também precisam usar esse servidor de email. Eles usam software escrito em c # para enviar e-mails, mas desde a minha última atualização a autenticação smtp não funciona corretamente, então eu tenho que usar a configuração myNetwork em main.cf Para endereços IP alocados dinamicamente, ou funcionários de meus clientes trabalhando em casa, isso dá o problema de eu ter que ajustar manualmente o main.cf toda vez que um email é rejeitado pelo servidor de email.

Eu já uso o MySQL para usuários e domínios, então a configuração deve ser OK:

virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix
/mysql-email2email.cf

Mas se eu usar:

mynetworks = mysql:/etc/postfix/mysql-mynetworks.cf

que contém:

user = MailUserName
password = MailUserPassWord
hosts = 127.0.0.1
dbname = MailDatabase
query = Select IPNummer from MyNetworks where IPNummer = '%s'
expansion_limit = 100

Recebo o seguinte erro ao enviar um email: Falha de pesquisa temporária

É claro que eu pesquisei bastante, mas os suspeitos do costume, como a codificação, foram tentados e não deram resultado.

Se alguém puder dar um ponteiro para a solução, eu ficaria muito grato.

    
por RobRdam 06.12.2012 / 01:05

2 respostas

3

but since my last upgrade the smtp authentication doesn't work properly

Você precisa corrigir isso.

mynetworks não se destina a conceder reinos gratuitos a pessoas de fora em seu sistema de servidor de e-mail; você deve restringi-lo a localhost 99% do tempo.

    
por 07.12.2012 / 16:00
0

Eu acho que é uma má ideia. No entanto, se você fosse tentar, você precisaria de alguma forma para armazenar IPs e netmasks em sua tabela e consultar os intervalos. Isso seria meio complicado com regex e outras coisas, então eu pegaria o atalho e criaria uma tabela assim, convertendo o primeiro e último IP em cada intervalo para um inteiro. Neste exemplo 10.188.17.0/24

|first_ip |last_ip  |action|
|180097280|180097535|OK |

Em seguida, criaria uma consulta para determinar se o IP estava entre o primeiro e o último e retornaria a ação ou sempre que o Postfix quisesse. Não tenho certeza se isso realmente funciona, mas parece viável.

Dito isso, parece muito mais simples, mais confiável e não requer atualizações constantes para o seu banco de dados para corrigir o que deu errado com a autenticação SMTP.

    
por 06.12.2012 / 03:05

Tags