Это немного сложно объяснить, но это очень простая проблема.
У нас есть внутренний сервер sendmail и размещенный сервер. Оба настроены на одно и то же доменное имя. У нас смешанные почтовые аккаунты.
Например у нас два пользователя в одном офисе. a@abc.com только локальный b@abc.com внутренний плюс внешний.
Внутренний означает, что мы создаем пользователя в локальном Linux-сервере, где установлен sendmail.
Внешний означает, что мы создаем пользователя на локальном и размещенном сервере.
a@abc.com может отправлять письма любому внутреннему пользователю, созданному в Linux, на котором установлен sendmail. Но он не может отправлять почту во внешний домен, и никакая почта не может быть отправлена ему, так как на внешнем размещенном сервере нет учетной записи.
b@abc.com может отправлять почту на внутренние, а также на все другие домены с помощью функции smart_host sendmail, которая использует smtp размещенного сервера. b@abc.com может получать все внешние электронные письма изнутри через Fetchmail в Linux.
Теперь у нас есть третий пользователь c@abc.com, который всегда будет удален и может использовать только внешний сервер.
Поэтому я не могу создать учетную запись в локальном Linux-сервере для c@abc.com, потому что его почта будет доставлена только локально. Я не хочу создавать псевдоним и отправлять его письма на учетную запись Gmail или Yahoo. Я хочу отправлять электронные письма на его внешнюю учетную запись от любого внутреннего пользователя.
Как это можно сделать? Заранее спасибо.
Для доставки электронной почты предназначенный для одного из этих пользователей вы можете использовать "виртуальную" возможность. Чтобы перенаправить электронную почту только некоторые пользователей на внешний адрес, например для ваших образцов пользователей вы можете добавить это в свой sendmail.mc
файл:
ОСОБЕННОСТЬ (virtusertable, `hash -o / etc / mail / virtusertable ')
Тогда в /etc/mail/virtusertable
файл используйте что-то вроде этого для доставки электронной почты для a@abc.com локально и электронная почта для b@abc.com или @ c @ abc.com * на удаленный размещенный сервер:
a@abc.com localuser
b@abc.com b@hosted.server
c@abc.com somebody@hosted.server
Восстановить virtusertable.db
карта, запустив makemap (1), и Sendmail должен уметь обрабатывать Доставка часть электронного письма нормально:
# cd /etc/mail
# makemap hash virtusertable < virtusertable
Немного сложнее контролировать, кому из локальных пользователей разрешено отправлять электронную почту. Возможно, вы сможете использовать "relay_mail_from
"и получить доступ к записям карты, но поскольку я на самом деле этого не пробовал, я позволю кому-нибудь другому ответить с более полезными подробностями.