Estou usando o Sendmail em um servidor Centos para enviar email para scripts PHP, mas o problema é que o email é entregue em uma caixa de correio local na máquina em vez do especificado nos registros MX do domínio - que na verdade apontam para outra máquina. use para email.
Gostaria que o sendmail não tentasse entregar localmente emails para o domínio em que a máquina está configurada. Existe uma maneira simples de desativar a entrega local?
O domínio não está no arquivo de nomes de host local.
Já pesquisei bastante no Google e já vi:
Configuração do Sendmail para não entregar emails na máquina local
Desativar entrega local no Sendmail
Mas ou não há resposta ou não é adequado.
Não quero retransmitir para outro servidor, só quero que ele envie e-mails, independentemente do domínio.
Para fornecer um exemplo:
Eu tenho dois servidores, um é o servidor de correio em mail.example.com e um servidor web que é exemplo.com. Quando uso o serviço smtp no servidor Web, ele atualmente encaminha o correio para uma caixa de correio local em exemplo.com, mas deve ir para as caixas de correio em mail.example.com
Saída de sendmail -bt retorna:
MODO DE TESTE DE ENDEREÇO (conjunto de regras 3 NÃO invocado automaticamente) Entrar > 3,0 [email protected] canonificar entrada: info @ exemplo. com Entrada Canonify2: informações Canonify2 retorna: informações canonify retorna: informações analisar entrada: informações Entrada Parse0: informações Parse0 retorna: informações ParseLocal input: info ParseLocal retorna: informações Entrada Parse1: informações Parse1 retorna: $ # local $: informações análise retorna: $ # local $: informações
Respostas:
O que fiz para desativar a entrega local. Vou usar o domínio example.com.
Requisitos:
Passos:
no fim:
e depois:
teste:
Você deve vê-lo se conectando ao servidor do Google e, em seguida, seu e-mail sendo entregue na sua caixa de entrada do Google.
fonte
sendmailconfig
, adicione as linhas que você especificou, executesendmailconfig
novamente e execute umservice sendmail restart
e funciona!/etc/passwd
eetc/passwd
Graças a sporker e Pawel, você me colocou na direção certa para corrigir isso.
Meu problema original era que o sendmail estava considerando minhas contas de email do domínio example.com como contas locais.
Esses links se mostraram muito úteis: Sendmail para o domínio local, ignorando os registros MX (parte 2) http://lists.freebsd.org/pipermail/freebsd-questions/2004-September/057382.html http://objectmix.com/sendmail/ 367920-sendmail-ignora-mailertable-some-semilocal-domains.html
Mas no meu caso, usando o FreeBSD 8.2, o que realmente fez o truque foi:
# cd /etc/mail
# vim freebsd.mc
Adicione estas duas linhas:
Logo antes:
# make
--- Isso é saída ---
--- Fim da saída ---
# cp sendmail.cf sendmail.cf.bak
# cp host.example.com.cf sendmail.cf
# /etc/rc.d/sendmail restart
Espero que isso evite algumas dores de cabeça para alguém.
fonte
Não sou uma pessoa do sendmail, mas acredito que o sendmail tratará qualquer domínio armazenado
/etc/mail/local-host-names
como nomes de domínio local.Você pode tentar esvaziar este arquivo (não o excluir) e reiniciar o sendmail e ver como está.
EDIT
o nome do arquivo que eu mencionei é realmente definido em
sendmail.cf
e seu não pode ser definido paralocal-host-names
olhar nos
/etc/mail/sendmail.cf
paraIsso não é de forma alguma fatos testados, mas apenas eu pensando em voz alta.
fonte
Pode não ser a solução que você está procurando, mas se o seu problema é que o usuário "admin" ou "root" está recebendo muitos emails e uma caixa de correio enorme, convém considerar a configuração de um trabalho cron para limpar a caixa de correio todas as semanas, dias etc.
Tínhamos vários servidores CentOS com esse problema, mas o problema era que queríamos poder ler o e-mail algumas vezes, pois isso pode ajudar a diagnosticar vários problemas.
A solução era simplesmente agendar tarefas e limpar a caixa de vez em quando.
Se encontrássemos um problema ... comentaríamos o trabalho do cron (temporariamente) e leríamos os registros e e-mails em busca de pistas.
Apenas um pensamento ... e uma solução rápida / fácil para você.
Caso contrário, consulte o arquivo sendmail.mc e modifique-o de acordo.
Rápida atualização:
Não é exatamente isso que você está pedindo, mas pode lhe dar algumas idéias e ajudar a esclarecer algumas coisas para você:
http://www.pettingers.org/code/sendmail-local.html
fonte
Pessoalmente, sou mais uma pessoa pós-fixa, mas isso parece muito com você ter configurado o servidor de envio para receber e-mail em @ seudominio.com. Se houver um sendmail equivalente ao mecanismo de transporte no postfix, é isso que eu uso para rotear emails internamente entre meus servidores.
fonte
Parece que seu conjunto de regras 3 retira as informações do domínio. Incluímos algumas etapas gerais de solução de problemas abaixo. Se isso não funcionar, você terá que me enviar seu sendmail.cf para dar uma olhada.
A partir da saída, example.com é tratado como um domínio local. faça uma pesquisa:
definir q = mx
domain.com
Se isso fornecer o endereço IP da máquina local, você precisará examinar o seu DNS. Procure também em / etc / hosts para garantir que domain.com não esteja listado.
Também parece remover o @ domain.com. Você pode tentar algo como [email protected] para ver se ele também o lista como domínio local.
Verifique também o valor Cw no seu arquivo sendmail.cf.
fonte
Provavelmente não é o que você deseja, mas o SSMTP é muito bom para um servidor somente de saída, onde você pode especificar um hub de correio.
fonte
Se você deseja retornar um erro ao tentar a entrega em um endereço local, use o mapa de acesso e algo como:
Se você deseja que as mensagens de email sejam 'entregues', mas descartadas, você pode instalar uma entrada virtusertable que aliase tudo "
@your.domain
" para dev-null. Pode ser útil continuar entregando pelo menosroot
localmente, " " porque geralmente é o destinatário dos relatórios de email dos trabalhos cron etc. Tente algo como isto emvirtusertable
:Com um
dev-null
alias local que redireciona as mensagens para / dev / null, isso deve continuar fornecendo email raiz, mas descarte as mensagens entregues a outros usuários.fonte
A correção de Pawel funcionou para mim, mas o sendmailconfig não existia nos centos, então eu tive que executar
para atualizar a configuração
fonte
Apenas confirmando que a resposta de Pawel resolveu meu problema muito semelhante.
Para quem usa o FreeBSD, mas não está interessado em se envolver demais com a labuta de arquivos cf do sendmail, a seguinte seqüência é o que você usaria para adicionar as duas linhas no exemplo de Pawel:
fonte
Segui essas sugestões e notei que apenas adicionando a etapa mencionada pelo pawel,
"/ etc / hosts definindo example.com atribuído ao mesmo endereço IP que o anterior", basicamente adicionei o IP do meu servidor seguido pelo nome do servidor ao
/etc/hosts
arquivo, e é isso.Foi o suficiente para eu receber emails roteados via google e voltar para meus emails.
fonte
Se você estiver usando o Cpanel / WHM para gerenciar seu servidor, selecione Trocador de Correio Remoto no Cpanel / WHM em vez de Detectar Configuração Automaticamente. O Remote Mail Exchanger enviará todos os emails por meio de registros MX, incluindo o domínio local. Com o Automático, os emails de domínio local serão roteados diretamente localmente e não serão enviados para um servidor externo definido nos registros MX.
fonte