Я использую Solaris 5.11, использую sendmail. Локальные имена пользователей имеют вид <буквы> <числа> (например, hn06511). В прошлом мы использовали псевдонимы, чтобы указать на <username> @ olddomain.com.
<имя пользователя> <имя пользователя> @ olddomain.com
Теперь есть новая схема адресов электронной почты и новый домен. Теперь адреса электронной почты имеют вид <имя>. <Имя> @ новый домен.com.
Поэтому я изменил псевдонимы на:
<имя пользователя> <имя>. <имя> @ newdomain.com
Это работает, однако <username> @ olddomain.com больше не работает. Чтобы добавить оскорбления к травме, есть много скриптов с жестко запрограммированными адресами электронной почты в старом стиле.
Итак, я хочу изменить <username> @ olddomain.com -> <firstname> <lastname> @ newdomain.com. Я подумал, что могу использовать для этого virtusertables, поэтому создал виртуальный файл, содержащий:
@ olddomain.com% 1
Предположительно, это должно взять <anybody> @ olddomain.com и направить его только на имя пользователя (% 1). Я надеялся, что тогда определенные мной псевдонимы будут переводить <username> -> <firstname>. <lastname> @ newdomain.com. Но насколько я могу судить, sendmail полностью игнорирует этот виртуальный объект и пытается доставить его на <username> @ olddomain.com и, конечно же, терпит неудачу.
AFAICT я правильно сформировал virtusertable и запустил makemap (я должен использовать dbm или хеш? Я видел оба). AFAICT я ввел правильную ФУНКЦИЮ, сделал make и убедился, что сгенерированный sendmail.cf находится в нужном месте. Я видел FEATURE, выраженную как
ХАРАКТЕРНАЯ ЧЕРТА(
virtusertable',
dbm -o / etc / mail / virtusertable ')
и
ХАРАКТЕРНАЯ ЧЕРТА(
virtusertable',
хэш -o / etc / mail / virtusertable ')
Но ни то, ни другое не работает.
Какую отладку или другую информацию я могу предоставить и попробовать?
Заранее спасибо.
Искать @oldomain.com
запись в виртуальный
echo '/map virtusertable xxx@oldomain.com' | sendmail -bt
Проверьте, проверяет ли sendmail virtusertable для адресов электронной почты olddomain.com
echo '3,0 john.doe@olddomain.com' | sendmail -d60.5 -bt
-d60.5
отслеживает поиск по картам (а также виртуальный поиск).
Еще подсказки:
m4
ожидает другого цитирования
FEATURE(virtusertable,`hash /etc/mail/virtusertable')
Не делайте virtusertable необязательным. удалять -o
из FEATURE
линия.
С участием -o
sendmail игнорирует отсутствующий файл virtusertable.
Sendmail использует скомпилированную версию virtusertable. Использовать makemap
для компиляции virtusertable.
virtusertable используется только для локальных почтовых доменов ($=w
) и $={VirtHost}
домены.
Используйте команду ниже как root, чтобы получить оба списка доменов
echo '$=w' | sendmail -bt
echo '$={VirtHost}' | sendmail -bt