diff options
Diffstat (limited to 'en_US.ISO8859-1/books/handbook/mail/chapter.sgml')
-rw-r--r-- | en_US.ISO8859-1/books/handbook/mail/chapter.sgml | 484 |
1 files changed, 0 insertions, 484 deletions
diff --git a/en_US.ISO8859-1/books/handbook/mail/chapter.sgml b/en_US.ISO8859-1/books/handbook/mail/chapter.sgml deleted file mode 100644 index d37c18cc7e..0000000000 --- a/en_US.ISO8859-1/books/handbook/mail/chapter.sgml +++ /dev/null @@ -1,484 +0,0 @@ -<!-- - The FreeBSD Documentation Project - - $FreeBSD: doc/en_US.ISO_8859-1/books/handbook/mail/chapter.sgml,v 1.18 2000/06/08 01:56:12 jim Exp $ ---> - -<chapter id="mail"> - <title>Electronic Mail</title> - - <para><emphasis>Rewritten by &a.jim;, 02 December 1999. Original work - done by &a.wlloyd;.</emphasis></para> - - <sect1> - <title>Synopsis</title> - - <para>Electronic Mail, better known as email, is one of the most - widely used forms of communication today. Millions of people use - email every day, and chances are if you are reading this online, - you fall into that category and probably even have more than one - email address.</para> - - <para>Electronic Mail configuration is the subject of many <link - linkend="bibliography">System Administration</link> books. If you - plan on doing anything beyond setting up one mailhost for your - network, you need industrial strength help.</para> - - <para>Some parts of email configuration are controlled in the Domain - Name System (DNS). If you are going to run your own DNS server, be - sure to read through the files in <filename>/etc/namedb</filename> - and <command>man -k named</command>.</para> - </sect1> - - <sect1 id="mail-using"> - <title>Using Electronic Mail</title> - - <para>There are five major parts involved in an email exchange. They - are: <link linkend="mail-mua">the user program</link>, <link - linkend="mail-mta">the server daemon</link>, <link - linkend="mail-dns">DNS</link>, <link linkend="mail-receive">a pop or - IMAP daemon</link>, and of course, <link linkend="mail-host">the - mailhost itself</link>.</para> - - <sect2 id="mail-mua"> - <title>The User Program</title> - - <para>This includes command line programs such as - <application>mutt</application>, <application>pine</application>, - <application>elm</application>, and - <application>mail</application>, and GUI programs such as - <application>balsa</application>, - <application>xfmail</application> to name a few, and something - more <quote>sophisticated</quote> like a WWW browser. These - programs simply pass off the email transactions to the local <link - linkend="mail-host"><quote>mailhost</quote></link>, either by - calling one of the <link linkend="mail-mta">server daemons</link> - available or delivering it over TCP.</para> - </sect2> - - <sect2 id="mail-mta"> - <title>Mailhost Server Daemon</title> - - <para>This is usually <application>sendmail</application> (by - default with FreeBSD) or one of the other mail server daemons such - as <application>qmail</application>, - <application>postfix</application>, or - <application>exim</application>. There are others, but those are - the most widely used.</para> - - <para>The server daemon usually has two functions—it looks - after receiving incoming mail and delivers outgoing mail. It does - not allow you to connect to it via POP or IMAP to read your mail. - You need an additional <link linkend="mail-receive">daemon</link> - for that.</para> - - <para>Be aware that some older versions of - <application>sendmail</application> have some serious security - problems, however as long as you run a current version of it you - should not have any problems. As always, it is a good idea to - stay up-to-date with any software you run.</para> - </sect2> - - <sect2 id="mail-dns"> - <title>Email and DNS</title> - - <para>The Domain Name System (DNS) and its daemon - <command>named</command> play a large role in the delivery of - email. In order to deliver mail from your site to another, the - server daemon will look up the site in the DNS to determine the - host that will receive mail for the destination.</para> - - <para>It works the same way when you have mail sent to you. The DNS - contains the database mapping hostname to an IP address, and a - hostname to mailhost. The IP address is specified in an A record. - The MX (Mail eXchanger) record specifies the mailhost that will - receive mail for you. If you do not have an MX record for your - hostname, the mail will be delivered directly to your host.</para> - </sect2> - - <sect2 id="mail-receive"> - <title>Receiving Mail</title> - - <para>Receiving mail for your domain is done by the mail host. It - will collect mail sent to you and store it for reading or pickup. - In order to pick the stored mail up, you will need to connect to - the mail host. This is done by either using POP or IMAP. If you - want to read mail directly on the mail host, then a POP or IMAP - server is not needed.</para> - - <para>If you want to run a POP or IMAP server, there are two things - you need to do:</para> - - <procedure> - <step> - <para>Get a POP or IMAP daemon from the <ulink - url="../ports/mail.html">Ports Collection</ulink> and install - it on your system.</para> - </step> - - <step> - <para>Modify <filename>/etc/inetd.conf</filename> to load the - POP or IMAP server.</para> - </step> - </procedure> - </sect2> - - <sect2 id="mail-host"> - <title>The Mail Host</title> - - <para>The mail host is the name given to a server that is - responsible for delivering and receiving mail for your host, and - possibly your network.</para> - </sect2> - </sect1> - - <sect1 id="mail-trouble"> - <title>Troubleshooting</title> - - <para>Here are some frequently asked questions and answers. These - have been migrated from the <ulink url="../FAQ/">FAQ</ulink>.</para> - - <qandaset> - <qandaentry> - <question> - <para>Why do I have to use the FQDN for hosts on my site?</para> - </question> - - <answer> - <para>You will probably find that the host is actually in a - different domain; for example, if you are in - <hostid role="fqdn">foo.bar.edu</hostid> and you wish to reach - a host called <hostid>mumble</hostid> in the <hostid - role="domainname">bar.edu</hostid> domain, you will have to - refer to it by the fully-qualified domain name, <hostid - role="fqdn">mumble.bar.edu</hostid>, instead of just - <hostid>mumble</hostid>.</para> - - <para>Traditionally, this was allowed by BSD BIND resolvers. - However the current version of <application>BIND</application> - that ships with FreeBSD no longer provides default abbreviations - for non-fully qualified domain names other than the domain you - are in. So an unqualified host <hostid>mumble</hostid> must - either be found as <hostid - role="fqdn">mumble.foo.bar.edu</hostid>, or it will be searched - for in the root domain.</para> - - <para>This is different from the previous behavior, where the - search continued across <hostid - role="domainname">mumble.bar.edu</hostid>, and <hostid - role="domainname">mumble.edu</hostid>. Have a look at RFC 1535 - for why this was considered bad practice, or even a security - hole.</para> - - <para>As a good workaround, you can place the line: - - <programlisting> -search foo.bar.edu bar.edu</programlisting> - - instead of the previous: - - <programlisting> -domain foo.bar.edu</programlisting> - - into your <filename>/etc/resolv.conf</filename>. However, make - sure that the search order does not go beyond the - <quote>boundary between local and public administration</quote>, - as RFC 1535 calls it.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>Sendmail says <errorname>mail loops back to - myself</errorname></para> - </question> - - <answer> - <para>This is answered in the sendmail FAQ as follows:</para> - - <programlisting> -* I am getting <quote>Local configuration error</quote> messages, such as: - -553 relay.domain.net config error: mail loops back to myself -554 <user@domain.net>... Local configuration error - -How can I solve this problem? - -You have asked mail to the domain (e.g., domain.net) to be -forwarded to a specific host (in this case, relay.domain.net) -by using an MX record, but the relay machine does not recognize -itself as domain.net. Add domain.net to /etc/sendmail.cw -(if you are using FEATURE(use_cw_file)) or add <quote>Cw domain.net</quote> -to /etc/sendmail.cf.</programlisting> - - <para>The sendmail FAQ is in - <filename>/usr/src/usr.sbin/sendmail</filename> and is - recommended reading if you want to do any - <quote>tweaking</quote> of your mail setup.</para> - </answer> - </qandaentry> - - <qandaentry> - <question> - <para>How can I do email with a dial-up PPP host?</para> - </question> - - <answer> - <para>You want to connect a FreeBSD box on a lan, to the - Internet. The FreeBSD box will be a mail gateway for the lan. - The PPP connection is non-dedicated.</para> - - <para>There are at least two ways to do this.</para> - - <para>The other is to use UUCP.</para> - - <para>The key is to get a Internet site to provide secondary MX - service for your domain. For example:</para> - - <programlisting> -bigco.com. MX 10 bigco.com. - MX 20 smalliap.com.</programlisting> - - <para>Only one host should be specified as the final recipient - (add <literal>Cw bigco.com</literal> in - <filename>/etc/sendmail.cf</filename> on bigco.com).</para> - - <para>When the senders' <command>sendmail</command> is trying to - deliver the mail it will try to connect to you over the modem - link. It will most likely time out because you are not online. - <command>sendmail</command> will automatically deliver it to the - secondary MX site, i.e., your Internet provider. The secondary MX - site will try every - (<literal>sendmail_flags = -bd -q15m</literal> in - <filename>/etc/rc.conf</filename>) 15 minutes to connect to - your host to deliver the mail to the primary MX site.</para> - - <para>You might want to use something like this as a login - script.</para> - - <programlisting> -#!/bin/sh -# Put me in /usr/local/bin/pppbigco -( sleep 60 ; /usr/sbin/sendmail -q ) & -/usr/sbin/ppp -direct pppbigco</programlisting> - - <para>If you are going to create a separate login script for a - user you could use <command>sendmail -qRbigco.com</command> - instead in the script above. This will force all mail in your - queue for bigco.com to be processed immediately.</para> - - <para>A further refinement of the situation is as follows.</para> - - <para>Message stolen from the &a.isp;.</para> - - <programlisting> -> 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 <quote>privacy flags</quote> 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 -<quote>hosts</quote>, so you need to get your customer to name their mail -machine <quote>customer.com</quote> as well as -<quote>hostname.customer.com</quote> in the DNS. Just put an A record in -the DNS for <quote>customer.com</quote>.</programlisting> - </answer> - </qandaentry> - </qandaset> - </sect1> - - <sect1 id="mail-advanced"> - <title>Advanced Topics</title> - - <para>The following section covers more involved topics such as mail - configuration and setting up mail for your entire domain.</para> - - <sect2 id="mail-config"> - <title>Basic Configuration</title> - - <para>Out of the box, you should be able send email to external - hosts as long as you have set up - <filename>/etc/resolv.conf</filename> or are running your own - name server. If you would like to have mail for your host - delivered to that specific host, there are two methods:</para> - - <itemizedlist> - <listitem> - <para>Run your own name server and have your own domain. For - example, <hostid - role="domainname">FreeBSD.org</hostid></para> - </listitem> - - <listitem> - <para>Get mail delivered directly to your host. This is done by - delivering mail directly to the current DNS name for your - machine. For example, <hostid - role="fqdn">example.FreeBSD.org</hostid>.</para> - </listitem> - </itemizedlist> - - <para>Regardless of which of the above you choose, in order to have - mail delivered directly to your host, you must have a permanent - (static) IP address (no dynamic PPP dial-up). If you are behind a - firewall, it must pass SMTP traffic on to you. If you want to - receive mail at your host itself, you need to be sure of one of two - things:</para> - - <itemizedlist> - <listitem> - <para>Make sure that the MX record in your DNS points to your - host's IP address.</para> - </listitem> - - <listitem> - <para>Make sure there is no MX entry in your DNS for your - host.</para> - </listitem> - </itemizedlist> - - <para>Either of the above will allow you to receive mail directly at - your host.</para> - - <para>Try this:</para> - - <screen>&prompt.root; <userinput>hostname</userinput> -example.FreeBSD.org -&prompt.root; <userinput>host example.FreeBSD.org</userinput> -example.FreeBSD.org has address 204.216.27.XX</screen> - - <para>If that is what you see, mail directly to - <email>yourlogin@example.FreeBSD.org</email> should work without - problems.</para> - - <para>If instead you see something like this:</para> - - <screen>&prompt.root; <userinput>host example.FreeBSD.org</userinput> -example.FreeBSD.org has address 204.216.27.XX -example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org</screen> - - <para>All mail sent to your host (<hostid - role="fqdn">example.FreeBSD.org</hostid> will end up being - collected on <hostid>hub</hostid> under the same username instead - of being sent directly to your host.</para> - - <para>The above information is handled by your DNS server. The DNS - record that carries mail routing information is the - <emphasis>M</emphasis>ail e<emphasis>X</emphasis>change entry. If - no MX record exists, mail will be delivered directly to the host by - way of its IP address.</para> - - <para>The MX entry for <hostid - role="fqdn">freefall.FreeBSD.org</hostid> at one time looked like - this:</para> - - <programlisting> -freefall MX 30 mail.crl.net -freefall MX 40 agora.rdrop.com -freefall MX 10 freefall.FreeBSD.org -freefall MX 20 who.cdrom.com</programlisting> - - <para>As you can see, <hostid>freefall</hostid> had many MX entries. - The lowest MX number is the host that ends up receiving the mail in - the end while the others will queue mail temporarily if - <hostid>freefall</hostid> is busy or down.</para> - - <para>Alternate MX sites should have separate Internet connections - from your own in order to be the most useful. Your ISP or other - friendly site should have no problem providing this service for - you.</para> - </sect2> - - <sect2 id="mail-domain"> - <title>Mail for your Domain</title> - - <para>In order to set up a <quote>mailhost</quote> (a.k.a., mail - server) you need to have any mail sent to various workstations - directed to it. Basically, you want to <quote>hijack</quote> any - mail for your domain (in this case <hostid - role="fqdn">*.FreeBSD.org</hostid>) and divert it to your mail - server so your users can check their mail via POP or directly on - the server.</para> - - <para>To make life easiest, a user account with the same - <emphasis>username</emphasis> should exist on both machines. Use - <command>adduser</command> to do this.</para> - - <para>The mailhost you will be using must be the designated mail - exchange for each workstation on the network. This is done in - your DNS configuration like so:</para> - - <programlisting> -example.FreeBSD.org A 204.216.27.XX ; Workstation - MX 10 hub.FreeBSD.org ; Mailhost</programlisting> - - <para>This will redirect mail for the workstation to the mailhost no - matter where the A record points. The mail is sent to the MX - host.</para> - - <para>You cannot do this yourself unless you are running a DNS - server. If you are not, or cannot, run your own DNS server, talk - to your ISP or whoever does your DNS for you.</para> - - <para>If you're doing virtual email hosting, the following - information will come in handy. For the sake of an example, we - will assume you have a customer with their own domain, in this - case <hostid role="domainname">customer1.org</hostid> and you want - all the mail for <hostid role="domainname">customer1.org</hostid> - sent to your mailhost, which is named <hostid - role="fqdn">mail.myhost.com</hostid>. The entry in your DNS - should look like this:</para> - - <programlisting> -customer1.org MX 10 mail.myhost.com</programlisting> - - <para>You do <emphasis>not</emphasis> need an A record if you only - want to handle email for the domain.</para> - - <note> - <para>Be aware that this means pinging <hostid - role="domainname">customer1.org</hostid> will not work unless - an A record exists for it.</para> - </note> - - <para>The last thing that you must do is tell - <application>sendmail</application> on your mailhost what domains - and/or hostnames it should be accepting mail for. There are a few - different ways this can be done. Either of the following will - work:</para> - - <itemizedlist> - <listitem> - <para>Add the hosts to your - <filename>/etc/sendmail.cw</filename> file if you are using the - <literal>FEATURE(use_cw_file)</literal>. If you are using - sendmail 8.10 or higher, the file is - <filename>/etc/mail/local-host-names</filename>.</para> - </listitem> - - <listitem> - <para>Add a <literal>Cwyour.host.com</literal> line to your - <filename>/etc/sendmail.cf</filename> or - <filename>/etc/mail/sendmail.cf</filename> if you are using - sendmail 8.10 or higher.</para> - </listitem> - </itemizedlist> - </sect2> - </sect1> -</chapter> |