Вот несколько часто задаваемых вопросов и ответов на них, взятых, в основном, из FAQ.
Вы, видимо, обнаружили, что хост, к которому Вы обратились, оказался на самом деле в другом домене; например, если Вы находитесь в домене foo.bar.edu и хотите обратиться к хосту mumble в домене bar.edu, то должны указать его полное доменное имя, mumble.bar.edu, а не просто mumble.
Традиционно, ресолверы (распознаватели) BSD BIND позволяли это делать. Однако, текущая версия BIND, поставляемая с FreeBSD, больше не добавляет имена доменов, отличающихся от того, в котором Вы находитесь, для не полностью указанных имен хостов. То есть, имя mumble будет опознан как mumble.foo.bar.edu или будет искаться в корневом домене.
Это отличается от предыдущего поведения, при котором поиск продолжался в доменах mumble.bar.edu и mumble.edu. Если Вам интересны причины объявления такого поведения плохой практикой и даже ошибкой в безопасности, обратитесь к RFC 1535.
Хорошим решением будет поместить строку
search foo.bar.edu bar.eduвместо ранее используемой:
domain foo.bar.eduв файл /etc/resolv.conf. Однако удостоверьтесь, что порядок поиска не нарушает "границ полномочий между локальным и внешним администрирования", в терминологии RFC 1535.
В FAQ по sendmail дан следующий ответ:
* Выдаются сообщения "Local configuration error", например: 553 relay.domain.net config error: mail loops back to myself 554 <user@domain.net>... Local configuration error Как можно решить эту проблему? Согласно записям MX, почта для домена domain.net перенаправляется на хост relay.domain.net, однако последний не распознается как domain.net. Добавьте domain.net в файл /etc/sendmail.cw (если Вы используете FETURE(use_cw_file)) или добавьте "Cw domain.net" в файл /etc/sendmail.cf.
Текущая версия этого FAQ больше не поставляется вместе с sendmail. Однако, этот документ регулярно помещается в конференциях comp.mail.sendmail, comp.mail.misc, comp.mail.smail, comp.answers и news.answers. Вы можете получить копию по электронной почте, послав запрос, содержащий команду "send usenet/news.answers/mail/sendmail-faq" в теле письма, по адресу <mail-server@rtfm.mit.edu>.
Вы можете подключить к Интернет FreeBSD машину в локальной сети, которая будет "промежуточным звеном" в доставке Вашей почты. Для этого существует по крайней мере два способа. Или, в качестве альтернативы, Вы можете воспользоваться UUCP.
Прежде всего, Вам необходимо убедиться, что провайдер обеспечивает дополнительный MX-сервис для Вашего домена, например:
bigco.com. MX 10 bigco.com.
MX 20 smalliap.com.Только один хост должен быть указан в качестве последнего получателя (добавьте запись Cw bigco.com в файл /etc/sendmail.cf на машине bigco.com).
Когда программа sendmail (со стороны отправителя) "захочет" доставить почту, она попытается установить Интернет-соединение через модем. Скорее всего, ей это не удастся (в произвольный момент времени Вы, вероятнее всего, не будете подключены к Интернет), и она автоматически перейдет ко второму серверу, т.е. Вашему провайдеру Интернет, который, в свою очередь, будет пытаться установить соединение в Вашим компьютером каждые (sendmail_flags = -bd -q15m в файле /etc/rc.conf) 15 минут, чтобы доставить почту.
Вы можете воспользоваться следующим сценарием, чтобы забирать почту каждый раз, когда Вы входите в систему.
#!/bin/sh
# Put me in /usr/local/bin/pppbigco
( sleep 60 ; /usr/sbin/sendmail -q ) &
/usr/sbin/ppp -direct pppbigcoЕсли же Вы хотите написать отдельный пользовательский скрипт, лучше воспользоваться командой sendmail -qRbigco.com вместо вышеприведенного сценария, так как в этом случае вся почта в очереди для хоста bigco.com будет обработана немедленно.
Рассмотрим эту ситуацию подробнее.
Вот пример сообщения от Список рассылки, посвящённый использованию FreeBSD у провайдеров Internet-услуг <freebsd-isp@FreeBSD.org>.
> мы предоставляем вторичный MX для наших клиентов. Вы соединяетесь
> с нашим сервером несколько раз в день чтобы забрать почту для Вашего
> первичного (главного) MX (мы не соединяемся с ним каждый раз, когда
> приходит новая почта для его доменов). Далее, sendmail отправляет
> почту, находящуюся в очереди каждые 30 минут, и клиент должен быть
> подключен к Интернет в течении 30 минут, чтобы удостовериться, что
> вся почта "ушла" на основной MX-сервер.
>
> Может быть, есть какая-либо команда, которая заставит sendmail
> немедленно отправить все почту, находящуюся в очереди? Естественно,
> пользователи не обладают какими-либо повышенными привилегиями на
> нашем сервере.
В секции "privacy flags" файла
sendmail.cf, определяется опция
Opgoaway,restrictqrun
Уберите restrictqrun, чтобы разрешить рядовым
пользователям инициировать работу с очередью. Вам также может понадобиться
изменить порядок MX-серверов. Так, если Вы являетесь первым (основным) MX-сервером, укажите:
# If we are the best MX for a host, try directly instead of generating
# local config error.
OwTrue
Таким образом, удаленный хост будет доставлять почту непосредственно к Вам,
не пытаясь установить соединение с клиентом. Затем уже Вы, в свою очередь,
отсылаете ее клиенту. Удостоверьтесь, что в DNS есть записи про
"customer.com" и "hostname.customer.com". Просто
добавьте запись A в DNS для "customer.com".