Назад | Перейти на главную страницу

Как заставить sendmail ретранслировать локальную почту?

У меня есть www-сервер, который называется mywebsite.com, а почтовый сервер mymail.com. Почта для mywebsite.com обрабатывается mymail.com (запись mx для mywebsite.com - это mymail.com). Проблема в том, что я хочу отправлять письма с моего www-сервера mywebsite.com на адрес в домене mywebsite.com.

Поэтому я настроил sendmail на mywebsite.com для пересылки всех писем через mymail.com. я меняю конфигурацию sendmail на mywebsite.com: dnl # define('SMART_HOST', 'mymail.com')dnl

Проблема в том, что sendmail жалуется, когда я отправляю, например, на rafal@mywebsite.com, что пользователь неизвестен (но этот почтовый ящик существует на mymail.com). Все почтовые ящики находятся на mymail.com, а не на mywebsite.com.

это журнал от telnet до localhost на mywebsite.com

root@mywebsite.com# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 familie.pl ESMTP Sendmail 8.13.8/8.13.8; Sun, 6 Nov 2011 18:21:04 +0100
helo domain.pl
250 domain.pl Hello localhost.localdomain [127.0.0.1], pleased to meet you
mail from: me@mywebsite.com
250 2.1.0 me@mywebsite.com... Sender ok
rcpt to: rafal@mywebsite.com
550 5.1.1 rafal@website.com ... User unknown
data
503 5.0.0 Need RCPT (recipient)

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

Это цитируется из http://www.tipstrs.com/tip/13296/Setting-up-sendmail-with-a-catch-all-for-unknown-email-addresses


Если вы запускаете sendmail на сервере Linux, довольно легко настроить sendmail так, чтобы любое электронное письмо, отправленное на неизвестный адрес электронной почты в вашем домене, пересылалось на известный адрес. Это приводит к увеличению количества спама, но мне это нравится, потому что затем я могу использовать адреса электронной почты, которые не существуют для определенных целей (например, когда форум требует действующий адрес электронной почты как часть процесса подтверждения регистрации) .

Вот как настроить сбор всех неизвестных адресов электронной почты в Fedora (ваш disto может немного отличаться), все эти команды необходимо запускать от имени пользователя root:

  1. Отредактируйте /etc/mail/sendmail.mc file и найдите строку, содержащую virtusertable, и убедитесь, что она не закомментирована. Если он закомментирован, удалите комментарий. В моем случае это выглядит так:

    FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dn
    
  2. Отредактируйте /etc/mail/virtusertable file и добавьте строки, подобные приведенным ниже, по одной для каждого домена на вашем сервере, для которого вы хотите добавить сводку:

    @domain1.com postmaster-domain1
    @domain2.com postmaster-domain2
    

    В этом примере любая почта, отправленная неизвестному пользователю на domain1.com, будет перенаправлена ​​пользователю postmaster-domain1, а любое электронное письмо, отправленное неизвестному пользователю на domain2.com, будет перенаправлено пользователю postmaster-domain2. Чтобы это работало, пользователи, которым пересылается почта, должны существовать и иметь возможность получать почту.

  3. Из /etc/mail каталог, запустите make команда.
  4. Перезапустите службу sendmail, используя service sendmail restart команда.

Это все, что нужно сделать. Как только вы сделаете эти несколько простых шагов, вы получите всю информацию о любых письмах, отправленных неизвестным пользователям в вашем домене.