У меня есть веб-сервер ubuntu 16.04 с перенаправленной записью mx. На сервере я установил sendmail. У меня работает несколько хостов. Один из них - «xxx-tele.com».
Теперь я хочу настроить sendmail, чтобы все письма, отправленные на info@xxx-tele.com, пересылались на xxx@tele.com, который является почтовым ящиком на другом почтовом сервере внутри моей сети.
Сначала я добавил / etc / mail / virtusertable с
info@xxx-tele.com xxx@tele.com
и с помощью "makemap hash virtusertable.db <virtusertable" я создал хэш-файл. В /etc/mail/sendmail.mc я добавил строку
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
и я запускаю
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
и перезапустил sendmail с "перезагрузкой службы sendmail".
Теперь я пробую команду
sendmail -bv info@xxx-tele.com
и я просто получаю ответ: info@xxx-tele.com ... Пользователь неизвестен
Xxx-tele.com добавляется в / etc / hosts и в / etc / mail / local-host-names.
Как я могу настроить sendmail, чтобы просто пересылать этот адрес и отказываться от всех остальных?
Команда: echo '$ = w' | sendmail -bt просто возвращает:
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> localhost.tele.com
web
xxx-tele.com
[internal.dmz.ip4.address]
localhost
web.tele.com
[127.0.0.1]
web.tele.com
[localhost.tele.com]
Лучшее, dwi
вот предоставленная информация: Ответ на 1.)
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> map_lookup: virtuser (info@xxx-tele.com) returns myuser@tele.com (0)
Ответ на вопрос 2.):
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> canonify input: info @ xxx-tele.com
Canonify2 input: info < @ xxx-tele.com >
map_lookup(host, xxx-tele.com, %0=xxx-tele.com) => localhost.xxx.com. (0)
Canonify2 returns: info < @ localhost.xxx.com . >
canonify returns: info < @ localhost.xxx.com . >
parse input: info < @ localhost.xxx.com . >
Parse0 input: info < @ localhost.xxx. com . >
map_lookup(dequote, info, %0=info) => NOT FOUND (0)
Parse0 returns: info < @ localhost.xxx.com . >
Parse1 input: info < @ localhost. xxx.com . >
map_lookup(virtuser, info@localhost.xxx.com, %0=info@localhost.xxx.com, %1=info) => NOT FOUND (0)
map_lookup(virtuser, @localhost.xxx.com, %0=@localhost.xxx.com, %1=info) => NOT FOUND (0)
Parse1 returns: $# local $: info
parse returns: $# local $: info
Третий ответ:
> root@web:~# _res.options = 812c3, HasWildcardMX = 0
Enter <ruleset> <address>
> canonify input: info @ xxx-tele . com
Canonify2 input: info < @ xxx-tele . com >
Canonify2 returns: info < @ localhost . xxx. com . >
canonify returns: info < @ localhost . xxx. com . >
parse input: info < @ localhost . xxx. com . >
Parse0 input: info < @ localhost . xxx. com . >
Parse0 returns: info < @ localhost . xxx. com . >
Parse1 input: info < @ localhost . xxx. com . >
Parse1 returns: $# local $: info
parse returns: $# local $: info
Мой файл хоста выглядит так:
127.0.0.1 localhost localhost.xxx.com xxx-tele.com
local.dmz.ip4.address web.xxx.com web xxx-tele.com
1) Проверьте, может ли sendmail получить доступ к записи в virtusetable
От имени root выполните:
echo /map virtuser info@xxx-tele.com | sendmail -bt
2) Проверьте, выполняет ли sendmail виртуальный поиск электронной почты.
От имени root выполните:
echo '3,0 info@xxx-tele.com' | sendmail -d60.5 -bt
-d60.5 отслеживает (все) поиски карт, включая виртуальные поиски
3) Если домен переписан на host
поиск по карте перед виртуальные поиски, затем проверьте DNS-запросы и отправьте /etc/hots
записи с xxx-tele.com
echo '3,0 info@xxx-tele.com' | sendmail -d8.20 -bt
Домен перезаписывается поиском на карте хоста перед виртуальным поиском
как указано в выходных данных отладки, предоставленных
echo '3,0 info@xxx-tele.com' | sendmail -d60.5 -bt
Изменение записи в / etc / hosts должно исправить
### Old Entry
# 127.0.0.1 localhost localhost.xxx.com xxx-tele.com
### New Entry
127.0.0.1 localhost xxx-tele.com