Вот несколько часто задаваемых вопросов и ответов на них, взятых, в основном, из 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".