Команды отладки virtusertable для пользователя root

Команды отладки virtusertable для пользователя root

Я работаю на Solaris 5.11, использую sendmail. Локальные имена пользователей имеют форму <буквы><цифры> (например, hn06511). Раньше мы использовали псевдонимы, чтобы указать на <имя пользователя>@olddomain.com.

<имя пользователя> <имя пользователя>@olddomain.com

Теперь есть новая схема адресов электронной почты и новый домен. Теперь адреса электронной почты имеют вид <имя>.<фамилия>@newdomain.com.

Поэтому я изменил псевдонимы на следующие:

<имя пользователя> <имя>.<фамилия>@newdomain.com

Это работает, однако <username>@olddomain.com больше не работает. Чтобы добавить оскорбления к ране, есть много скриптов с жестко закодированными адресами электронной почты в старом стиле.

Итак, я хочу изменить <username>@olddomain.com -> <firstname><lastname>@newdomain.com. Я подумал, что могу использовать virtusertables, чтобы сделать это, поэтому я создал virtusertable, который содержит:

@olddomain.com %1

Предположительно, это должно взять <anybody>@olddomain.com и направить его только на имя пользователя (%1). Я надеялся, что тогда псевдонимы, которые я определил, будут переводить <username> -> <firstname>.<lastname>@newdomain.com. Но насколько я могу судить, sendmail полностью игнорирует эту virtusertable и пытается доставить на <username>@olddomain.com и, конечно же, терпит неудачу.

AFAICT Я правильно отформатировал virtusertable и запустил makemap (должен ли я использовать dbm или hash? Я видел оба варианта). AFAICT Я вставил правильный FEATURE и выполнил make и убедился, что сгенерированный sendmail.cf находится в правильном месте. Я видел FEATURE, выраженный как

ВОЗМОЖНОСТЬ( virtusertable',dbm -o /etc/mail/virtusertable')

и

ФУНКЦИЯ( virtusertable',хэш -o /etc/mail/virtusertable')

Но ни то, ни другое не работает.

Какую отладочную или другую информацию я могу предоставить и попробовать?

Заранее спасибо.

решение1

Команды отладки virtusertable для пользователя root

Найдите @oldomain.comзапись в virtusertable

echo '/map virtusertable [email protected]' | sendmail -bt

Проверьте, проверяет ли sendmail virtusertable на наличие адресов электронной почты olddomain.com

echo '3,0 [email protected]' | sendmail -d60.5 -bt

-d60.5отслеживает поиск карт (также поиск virtusertable).


Еще подсказки:

  1. m4ожидает еще одного цитирования

    FEATURE(virtusertable,`hash /etc/mail/virtusertable')
    
  2. Не делайте virtusertable необязательным. Удалите -oиз FEATUREстроки.
    С -osendmail игнорирует отсутствующий virtusertable.

  3. Sendmail использует скомпилированную версию virtusertable. Используйте makemapдля компиляции virtusertable.

  4. virtusertable используется только для локальных доменов электронной почты ( $=w) и $={VirtHost}доменов.

    Используйте команду ниже как root, чтобы получить оба списка доменов

    echo '$=w' | sendmail -bt
    echo '$={VirtHost}' | sendmail -bt
    

Связанный контент