Похоже, что Sendmail не читает virtusertable в Solaris 11

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

@ olddomain.com

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

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

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

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

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

@ olddomain.com% 1

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

AFAICT Я правильно отформатировал virtusertable и запустил makemap (должен ли я использовать dbm или хэш? Я видел оба). AFAICT Я ввел правильную ФУНКЦИЮ, сделал make и убедился, что сгенерированный sendmail.cf находится в нужном месте. Я видел FEATURE, выраженную как

FEATURE ( virtusertable ', dbm -o / etc / mail / virtusertable ')

и

FEATURE ( virtusertable', hash -o / etc / mail / virtusertable ')

Но ни один из них не работает.

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

Заранее благодарим.

0
задан 31 August 2018 в 04:18
1 ответ

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

Искать (скрытую) запись в virtusertable

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 отслеживает поиск по картам (также виртуальный поиск).


Дополнительные подсказки:

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

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

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

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

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

     echo '$ = w' |  sendmail -bt
    echo '$ = {VirtHost}' |  sendmail -bt
     
0
ответ дан 5 December 2019 в 05:18

Теги

Похожие вопросы