28.5. 疑難排解
前一頁 | 章 28. 電子郵件 | 下一頁

## 28.5. 疑難排解

28.5.1. Why do I have to use the FQDN for hosts on my site?
28.5.2. How can I run a mail server on a dial-up PPP host?

28.5.1. | Why do I have to use the FQDN for hosts on my site?

The host may actually be in a different domain. For example, in order for a host in `foo.bar.edu` to reach a host called `mumble` in the `bar.edu` domain, refer to it by the Fully-Qualified Domain Name FQDN, `mumble.bar.edu`, instead of just `mumble`.

This is because the version of BIND which ships with FreeBSD no longer provides default abbreviations for non-FQDNs other than the local domain. An unqualified host such as `mumble` must either be found as `mumble.foo.bar.edu`, or it will be searched for in the root domain.

In older versions of BIND, the search continued across `mumble.bar.edu`, and `mumble.edu`. RFC 1535 details why this is considered bad practice or even a security hole.

As a good workaround, place the line:

    search foo.bar.edu bar.edu

instead of the previous:

    domain foo.bar.edu

into `/etc/resolv.conf`. However, make sure that the search order does not go beyond the “boundary between local and public administration”, as RFC 1535 calls it.

28.5.2. | How can I run a mail server on a dial-up PPP host?

Connect to a FreeBSD mail gateway on the LAN. The PPP connection is non-dedicated.

One way to do this is to get a full-time Internet server to provide secondary MX services for the domain. In this example, the domain is `example.com` and the ISP has configured `example.net` to provide secondary MX services to the domain:

    example.com.          MX        10      example.com.
                          MX        20      example.net.

Only one host should be specified as the final recipient. For Sendmail, add `Cw example.com` in `/etc/mail/sendmail.cf` on `example.com`.

When the sending MTA attempts to deliver mail, it will try to connect to the system, `example.com`, over the PPP link. This will time out if the destination is offline. The MTA will automatically deliver it to the secondary MX site at the Internet Service Provider (ISP), `example.net`. The secondary MX site will periodically try to connect to the primary MX host, `example.com`.

Use something like this as a login script:

    #!/bin/sh
    # Put me in /usr/local/bin/pppmyisp
    ( sleep 60 ; /usr/sbin/sendmail -q ) &
    /usr/sbin/ppp -direct pppmyisp

When creating a separate login script for users, instead use `sendmail -qRexample.com` in the script above. This will force all mail in the queue for `example.com` to be processed immediately.

A further refinement of the situation can be seen from this example from the FreeBSD Internet service provider's mailing list:

    > we provide the secondary MX for a customer. The customer connects to
    > our services several times a day automatically to get the mails to
    > his primary MX (We do not call his site when a mail for his domains
    > arrived). Our sendmail sends the mailqueue every 30 minutes. At the
    > moment he has to stay 30 minutes online to be sure that all mail is
    > gone to the primary MX.
    >
    > Is there a command that would initiate sendmail to send all the mails
    > now? The user has not root-privileges on our machine of course.

    In the “privacy flags” section of sendmail.cf, there is a
    definition Opgoaway,restrictqrun

    Remove restrictqrun to allow non-root users to start the queue processing.
    You might also like to rearrange the MXs. We are the 1st MX for our
    customers like this, and we have defined:

    # If we are the best MX for a host, try directly instead of generating
    # local config error.
    OwTrue

    That way a remote site will deliver straight to you, without trying
    the customer connection.  You then send to your customer.  Only works for
    “hosts”, so you need to get your customer to name their mail
    machine “customer.com” as well as
    “hostname.customer.com” in the DNS.  Just put an A record in
    the DNS for “customer.com”.

前一頁 | 上一層 | 下一頁
28.4. 更改郵件傳輸代理程式 | 起始頁 | 28.6. 進階主題

本文及其他文件，可由此下載： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。

若有 FreeBSD 方面疑問，請先閱讀 FreeBSD 相關文件，如不能解決的話，再洽詢 <questions@FreeBSD.org>。
關於本文件的問題，請洽詢 <doc@FreeBSD.org>。