Eu tenho uma pequena configuração de servidor doméstico atrás do meu modem a cabo (comunicações bresnan). Desejo poder enviar esta caixa de correio eletrônico (não receber) para notificações e outros enfeites.
O que eu já fiz:
- Eu instalei e configurei o sendmail.
- Eu adicionei
mail.bresnan.net
como minhaSMART_HOST
diretiva.
O que eu acredito que o problema é
Quando tento enviar um email, recebo o seguinte no meu log de email:
Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530: from=aburns,
size=140, class=0, nrcpts=1,
msgid=<[email protected]>,
relay=aburns@localhost
Dec 22 10:24:17 batcave sm-mta[1531]: oBMHOHWZ001531: from=<[email protected]>,
size=397, class=0, nrcpts=1,
msgid=<[email protected]>,
proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530:
to=<[email protected]>, ctladdr=aburns (1000/1000),
delay=00:00:00, xdelay=00:00:00, mailer=relay,
pri=30140, relay=[127.0.0.1] [127.0.0.1],
dsn=2.0.0, stat=Sent (oBMHOHWZ001531 Message accepted for delivery)
Dec 22 10:24:18 batcave sm-mta[1517]: oBMH9mVv001357:
to=<[email protected]>, ctladdr=<[email protected]>
(1000/1000), delay=00:14:30, xdelay=00:00:42, mailer=relay,
pri=300339, relay=pmx0.bresnan.net. [69.145.248.1],
dsn=4.0.0, stat=Deferred: Connection timed out with pmx0.bresnan.net.
Você pode ver onde a mensagem é aceita para entrega pelo meu servidor sendmail e, em seguida, onde ela tenta passar para o servidor da bresnan e o tempo limite é excedido.
É aqui que está minha pergunta. Leitores astutos perceberão que pmx0.bresnan.net
não é isso que eu SMART_HOST
defini como minha diretiva. Este é o MX
servidor (externo?) Do domínio bresnan.com/net. Aparentemente, o bresnan tem sua rede configurada para que você não possa acessar esse servidor de dentro da própria rede e, em vez disso, deve usar o mail.bresnan.net
servidor (ao qual eu posso me conectar). O problema é que não sei como informar o sendmail para usar este servidor e não o domínio .
O que eu tentei
- Definir uma entrada de hosts para que o servidor pmx0 aponte para o endereço IP do email. Isso não funciona, o que faz sentido, pois o sendmail está obviamente fazendo uma consulta MX para encontrar o servidor que retorna o IP, para que nunca seja necessário fazer uma resolução de DNS 'normal' para que o arquivo de hosts nunca se envolva.
A correção (para todos os emails de saída):
Novamente, o props vai para o webmin (veja a nota abaixo) para me ajudar a aprender isso. Se você digitar seu smarthost entre colchetes que instrui o sendmail a não fazer uma pesquisa MX, então: define('SMART_HOST','[69.145.248.18]')
(Corrija as aspas-> backticks) realmente funciona sem uma tabela de correspondência.
A correção (para domínios específicos):
Conforme indicado abaixo, mailertable
é necessário configurar um . No entanto, conforme indicado na página de manual , esse recurso também precisa ser ativado no seu sendmail.mc
arquivo.
Observe também que a rota do remetente não força o sendmail a usar o servidor especificado para todas as operações, é baseada no endereço do destinatário. Isso é bom para mim, pois só preciso enviar para alguns domínios (gmail, google hospedado e meu trabalho).
Resumo :
- Adicione
FEATURE('mailertable')
ao seusendmail.mc
arquivo. (observe que a primeira citação deve ser um backtick. - Crie seu
/etc/mail/mailertable
arquivo (consulte a página do manual ) - Crie um arquivo de mapa:
sudo makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
- Reconstrua suas configurações
make -C /etc/mail
- Reinicie o sendmail:
service sendmail restart
NOTA: eu altamente recomendo usar o Webmin para editar / reconstruir esses arquivos. Sem ele, eu ficaria louco tentando descobrir por que meu arquivo mailertable estava sendo ignorado.
Respostas:
Você pode contornar a pesquisa do MX adicionando uma pequena entrada ao seu
/etc/mail/mailertable
arquivo sendmail .O conteúdo do arquivo provavelmente deve ter uma única linha como:
Salve o arquivo e reinicie o sendmail (ou reconstrua o seu sendmail.cf se for necessário manualmente).
fonte