diff options
author | Xin LI <delphij@FreeBSD.org> | 2005-04-06 11:22:37 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2005-04-06 11:22:37 +0000 |
commit | 555f89fb498ca96d2cc66dd1aab0d590a77310b7 (patch) | |
tree | 5863ffe25e1c9ad80a762271bbd3b834fe2ec3bd /zh_CN.GB2312/books | |
parent | 3ac1a6487c0cf9056deb0645a88458873e5d0b2d (diff) |
Notes
Diffstat (limited to 'zh_CN.GB2312/books')
-rw-r--r-- | zh_CN.GB2312/books/handbook/mail/chapter.sgml | 667 |
1 files changed, 583 insertions, 84 deletions
diff --git a/zh_CN.GB2312/books/handbook/mail/chapter.sgml b/zh_CN.GB2312/books/handbook/mail/chapter.sgml index 704674ee18..3911ce2601 100644 --- a/zh_CN.GB2312/books/handbook/mail/chapter.sgml +++ b/zh_CN.GB2312/books/handbook/mail/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Documentation Project The FreeBSD Chinese Documentation Project - Original Revision: 1.121 + Original Revision: 1.127 $FreeBSD$ --> @@ -30,7 +30,6 @@ <sect1 id="mail-synopsis"> <title>概述</title> <indexterm><primary>email</primary></indexterm> - <indexterm><primary>电子邮件</primary></indexterm> <para><quote>电子邮件</quote>,或通常所说的 email,是现今使用最广泛的通信方式之一。 本章将对如何在 &os; 上运行邮件服务,以及如何使用 &os; 来收发电子邮件作基本的介绍; @@ -382,7 +381,7 @@ FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org</screen> <indexterm> <primary><filename>/etc/mail/virtusertable</filename></primary> </indexterm> - <informaltable frame="none"> + <informaltable frame="none" pgwide="1"> <tgroup cols="2"> <thead> <row> @@ -453,12 +452,12 @@ FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org</screen> 将拒绝所有的邮件连接。如果带有 <option>RELAY</option> 选项的主机将被允许通过这个邮件服务器发送邮件到任何地方。</para> - <example> - <title>配置<application>sendmail</application> - 访问数据库</title> + <example> + <title>配置 <application>sendmail</application> + 的访问许可数据库</title> - <programlisting>cyberspammer.com 550 We don't accept mail from spammers -FREE.STEALTH.MAILER@ 550 We don't accept mail from spammers + <programlisting>cyberspammer.com 550 We do not accept mail from spammers +FREE.STEALTH.MAILER@ 550 We do not accept mail from spammers another.source.of.spam REJECT okay.cyberspammer.com OK 128.32 RELAY</programlisting> @@ -496,22 +495,21 @@ bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail"</programlisting> </example> - <para>文件格式比较简单:邮箱名在冒号左边,右边是扩展的目标。 - 第一个例子简单的扩展邮箱 <username>root</username> - 到邮箱 <username>localuser</username>,它可以在别名数据库中被找到。 - 如果没有找到匹配的,那么这个信息会被发送给本地用户 - <username>localuser</username>。接下来的例子显示了一个邮件列表。 - 发送到 <username>ftp-bugs</username> 邮箱的邮件会被扩展为三个本地邮箱 - <username>joe</username>、 - <username>eric</username> 和 <username>paul</username>。注意 - 一个远程邮箱可以用 <literal>user@example.com</literal> 的形式指定。 - 下个例子显示将邮件写到 <filename>/dev/null</filename> 文件。 - 最后一个例子向您展示了传送邮件到一个程序,在这个例子里邮件通过 - &unix; 管道被写到 <filename>/usr/local/bin/procmail</filename> - 标准输入里。</para> - - <para>当这个文件被升级时, 您必须在<filename>/etc/mail/</filename>运行 - <command>make</command>来升级数据库.</para> + <para>这个文件的格式很简单; 冒号左边的邮箱名, 会被展开成右边的形式。 + 第一个例子简单地将 <username>root</username> + 邮箱扩展为 <username>localuser</username>, 之后将继续在别名数据库中进行查找。 + 如果没有找到匹配的记录, 则邮件会被发给本地用户 + <username>localuser</username>。 第二个例子展示了一个邮件列表。 + 发送到 <username>ftp-bugs</username> 的邮件会被展开成 <username>joe</username>, + <username>eric</username> 和 <username>paul</username> 这三个邮箱。 + 注意也可以通过 <email>user@example.com</email> 这样的形式来指定远程的邮箱。 + 接下来的例子展示了如何把邮件写入到文件中, 这个例子中是 + <filename>/dev/null</filename>。 最后一个例子展示了如何将邮件发给一个程序, + 具体而言是通过 &unix; 管道发到 <filename>/usr/local/bin/procmail</filename> + 的标准输入。</para> + + <para>更新此文件时, 您需要在 <filename>/etc/mail/</filename> 中使用 + <command>make</command> 来更新数据库。</para> </sect2> <sect2> <title><filename>/etc/mail/local-host-names</filename></title> @@ -565,19 +563,17 @@ postmaster@example.com postmaster@noc.example.net @example.com joe</programlisting> </example> - <para>在上面这个例子里,我们映射了一个域 + <para>在上面这个例子中, 我们映射了一个域 <hostid role="domainname">example.com</hostid>。 - 这个文件用一个最初匹配的文件处理。第一项映射 - <literal>root@example.com</literal> 到本地邮箱 - <username>root</username>。下一项映射 - <literal>postmaster@example.com</literal> 到 - <hostid role="fqdn">noc.example.net</hostid> 主机的 - <username>postmaster</username> 邮箱。最后,如果域 - <hostid role="domainname">example.com</hostid> - 没有被什么匹配,它将与最后一个映射匹配,在 - <hostid role="domainname">example.com</hostid> - 域,每个其它邮件信息地址到某一个主机被匹配。 - 在这里被映射到本地邮箱 <username>joe</username>。</para> + 这个文件是按照从上到下, 首个匹配的方式来处理的。 第一项将 + <email>root@example.com</email> 映射到本地邮箱 <username>root</username>。 + 下一项则将 + <email>postmaster@example.com</email> 映射到位于 + <hostid role="fqdn">noc.example.net</hostid> 的 <username>postmaster</username>。 + 最后, 如果没有来自 <hostid role="domainname">example.com</hostid> + 的匹配, 则将使用最后一条映射, 它表示将所有的其它邮件发给 + <hostid role="domainname">example.com</hostid> 域的某个人。 + 这样, 将映射到本地信箱 <username>joe</username>。</para> </sect2> </sect1> @@ -1066,10 +1062,10 @@ example.FreeBSD.org &prompt.root; <userinput>host example.FreeBSD.org</userinput> example.FreeBSD.org has address 204.216.27.XX</screen> - <para>如果您看到这些,直接使用 - <email>yourlogin@example.FreeBSD.org</email> 应该没有问题 - (假定 <application>sendmail</application> 已经 - 正确的运行在 <hostid role="fqdn">example.FreeBSD.org</hostid>)。</para> + <para>如果您看到这些, 则直接发往 + <email role="nolink">yourlogin@example.FreeBSD.org</email> + 应该已经可以正常工作了 (假设 <application>sendmail</application> + 已经在 <hostid role="fqdn">example.FreeBSD.org</hostid> 上正确启动了)。</para> <para>如果您看到这些:</para> @@ -1302,9 +1298,72 @@ parse returns: $# uucp-dom $@ <replaceable>your.uucp.relay</replaceab </authorgroup> </sect1info> - <title>Setting Up to Send Only ** 翻译进行中 **</title> + <title>只发送邮件的配置</title> + + <para>许多时候, 可能只希望通过转发服务器来发送邮件。 + 典型的情况包括:</para> + + <itemizedlist> + <listitem> + <para>使用桌面机, 但希望通过类似 &man.send-pr.1; + 这样的程序发送邮件。 这样就需要使用 ISP 的邮件转发服务器。</para> + </listitem> + + <listitem> + <para>不在本地处理邮件的服务器, + 但它需要把邮件交给转发服务器来进行处理。</para> + </listitem> + </itemizedlist> + + <para>几乎任何一个 <acronym>MTA</acronym> 都能够胜任这样的工作。 + 然而不幸的是, 要把一个全功能的 <acronym>MTA</acronym> + 正确地配置为只把邮件交给其他服务器是一件很困难的事情。 使用 + <application>sendmail</application> 以及 + <application>postfix</application> 这样的程序, + 多少有些杀鸡用牛刀的感觉。</para> + + <para>此外, 如果您使用典型的 Internet 访问服务, + 您的协议可能会包含禁止运行 + <quote>邮件服务器</quote> 的条款。</para> + + <para>满足这些需要最简单的办法是安装 + <filename role="package">mail/ssmtp</filename> port。 + 以 <username>root</username> 身份执行下面的命令:</para> + + <screen>&prompt.root; <userinput>cd /usr/ports/mail/ssmtp</userinput> +&prompt.root; <userinput>make install replace clean</userinput></screen> + + <para>一旦装好, + <filename role="package">mail/ssmtp</filename> 就可以用四行 + <filename>/usr/local/etc/ssmtp/ssmtp.conf</filename> 来配置:</para> + + <programlisting>root=yourrealemail@example.com +mailhub=mail.example.com +rewriteDomain=example.com +hostname=_HOSTNAME_</programlisting> + + <para>请确认您为 + <username>root</username> 使用了真实的电子邮件地址。 + 用您的 ISP 提供的外发邮件转发服务器名称, + 替换掉 <hostid role="fqdn">mail.example.com</hostid> (某些 ISP + 可能将其称为 <quote>外发邮件服务器</quote> 或 + <quote>SMTP 服务器</quote>)。</para> + + <para>接下来确认禁用了 <application>sendmail</application>, + 这可以通过将 <literal>sendmail_enable="NONE"</literal> + 加入 <filename>/etc/rc.conf</filename> 来完成。</para> + + <para><filename role="package">mail/ssmtp</filename> 也提供了一些其他选项。 + 请参见在 + <filename>/usr/local/etc/ssmtp</filename> 中的示例配置, 或者 + <application>ssmtp</application> + 的联机手册来得到一些例子和更多的其他信息。</para> + + <para>以这种方式配置 <application>ssmtp</application>, + 能够让您计算机上的任何需要发送邮件的软件都正常运转, + 而不必冒违反 ISP 的使用政策, + 或使您的电脑被劫持用于发送垃圾邮件的风险。</para> - <para></para> </sect1> <sect1 id="SMTP-dialup"> @@ -1324,7 +1383,7 @@ parse returns: $# uucp-dom $@ <replaceable>your.uucp.relay</replaceab <para>为了从邮箱收取邮件, 需要安装一个收信代理。 <application>fetchmail</application> 是一个能够支持许多种不同协议的不错的选择。 - 这个程序可以通过 package 或 ports collection (<filename + 这个程序可以通过 package 或 Ports Collection (<filename role="package">mail/fetchmail</filename>) 来安装。 通常, 您的 <acronym>ISP</acronym> 会提供 <acronym>POP</acronym>。 如果您使用用户 <acronym>PPP</acronym>,您还可以在 Internet 连接建立时自动地抓取邮件, @@ -1334,32 +1393,37 @@ parse returns: $# uucp-dom $@ <replaceable>your.uucp.relay</replaceab <programlisting>MYADDR: !bg su user -c fetchmail</programlisting> - <para>如果您正使用<application>sendmail</application> (如下所示) - 传送邮件到非本地帐户,这会强迫 - <application>sendmail</application> 在连接网络后马上处理邮件进程队列,它在 - <filename>/etc/ppp/ppp.linkup</filename> 文件执行 - <command>fetchmail</command> 命令。</para> - - <programlisting> !bg su user -c "sendmail -q"</programlisting> - - <para>假设您有一个 - <username>user</username> 帐户,在 <hostid - role="fqdn">bsd.home</hostid>机器上。在 <hostid role="fqdn">bsd.home</hostid> - 机器上的 <username>user</username> 目录里建立一个 - <filename>.fetchmailrc</filename>文件:</para> - - <programlisting>poll example.net protocol pop3 fetchall pass MySecret</programlisting> - - <para>这个文件除了 <username>user</username> 外不应该被任何人读取, - 因为它包含了 <literal>MySecret</literal> 这个密码。</para> - - <para>为了在发信时有正确的抬头 - <literal>from:</literal>,您必须告诉 - <application>sendmail</application> 使用 - <literal>user@example.net</literal> 而非 - <literal>user@bsd.home</literal>。您可能会希望告诉 - <application>sendmail</application> 从 <hostid - role="fqdn">relay.example.net</hostid> 发送所有邮件,加快邮件的传送。</para> + <para>如果您正使用 <application>sendmail</application> (如下所示) + 来为非本地用户传送邮件, + 则可能需要让 <application>sendmail</application> 在您的 + Internet 连接建立时立即传送邮件队列。 + 要完成这项工作, 应该把下面的命令放到 + <filename>/etc/ppp/ppp.linkup</filename> 中的 + <command>fetchmail</command> 之后</para> + + <programlisting> !bg su user -c "sendmail -q"</programlisting> + + <para>假设您在 <hostid + role="fqdn">bsd.home</hostid> 上有一个 + <username>user</username> 用户。 在 <hostid + role="fqdn">bsd.home</hostid> 上的 + <username>user</username> 主目录中创建一个 + <filename>.fetchmailrc</filename> 文件:</para> + + <programlisting>poll example.net protocol pop3 fetchall pass MySecret</programlisting> + + <para>因为包含了密码 <literal>MySecret</literal>, 这个文件应该只有 + <username>user</username> 可读。</para> + + <para>要使用正确的 + <literal>from:</literal> 头来发送文件, 您必须告诉 + <application>sendmail</application> 使用 + <email>user@example.net</email> 而不是i + <email role="nolink">user@bsd.home</email>。 + 另外, 您可能也需要要求 + <application>sendmail</application> 通过 <hostid + role="fqdn">relay.example.net</hostid> 来发送邮件, + 以便更快地传送它们。</para> <para>以下的 <filename>.mc</filename> 文件应该可以满足您的需求:</para> @@ -1515,30 +1579,333 @@ sasl_pwcheck_program="/usr/local/sbin/pwcheck"</programlisting> </author> </authorgroup> </sect1info> - <title>Mail User Agents ** 翻译进行中 **</title> + <title>邮件用户代理</title> <indexterm> - <primary>Mail User Agents ** 翻译进行中 **</primary> + <primary>邮件用户代理</primary> </indexterm> - <para></para> + <para>邮件用户代理 (<acronym>MUA</acronym>) 是一个用于收发邮件的应用程序。 + 更进一步, 随着电子邮件的 + <quote>演化</quote> 并愈发复杂, + <acronym>MUA</acronym> 在和电子邮件相结合方面变得日趋强大; + 这为用户提供了更多的功能和灵活性。 &os; + 包含了对于众多邮件用户代理的支持, 所有这些都可以通过 + <link linkend="ports">FreeBSD Ports Collection</link> 来轻松安装。 + 用户可以选择类似 + <application>evolution</application> 以及 + <application>balsa</application> 这样的图形界面程序, + 也可以选择类似 + <application>mutt</application>、 <application>pine</application> + 或 <command>mail</command> 这样的控制台程序, + 或者某些大型机构使用的 web 界面。</para> <sect2 id="mail-command"> - <title>mail ** 翻译进行中 **</title> + <title>mail</title> + + <para>&man.mail.1; 是 &os; 中默认的邮件用户代理 + (<acronym>MUA</acronym>)。 + 它是一个基于控制台的 <acronym>MUA</acronym>, + 提供了所有用于收发文本形式的电子邮件所需的基本功能, + 虽然它处理附件的能力有限, 而且只支持本地的信箱。</para> + + <para>虽然 <command>mail</command> 没有内建的 <acronym>POP</acronym> 或 + <acronym>IMAP</acronym> 服务器支持, 然而这些信箱可以通过类似 + <application>fetchmail</application> 这样的应用程序, + 来下载到本地的 <filename>mbox</filename> 文件中。 + 这一应用程序在本章的稍后部分 (<xref + linkend="mail-fetchmail">) 进行了介绍。</para> + + <para>要收发邮件, 只需简单地使用 + <command>mail</command> 命令, + 如下所示:</para> + + <screen>&prompt.user; <userinput>mail</userinput></screen> + + <para>用户保存在 + <filename class="directory">/var/mail</filename> + 中的信箱的内容会被 <command>mail</command> 程序自动地读取。 + 如果信箱是空的, 程序会退出并给出一个消息表示没有邮件。 + 一旦读完了信箱, 将启动应用程序的界面, + 并列出邮件。 所有的邮件会被自动编号, + 类似下面的样子:</para> + + <screen>Mail version 8.1 6/6/93. Type ? for help. +"/var/mail/marcs": 3 messages 3 new +>N 1 root@localhost Mon Mar 8 14:05 14/510 "test" + N 2 root@localhost Mon Mar 8 14:05 14/509 "user account" + N 3 root@localhost Mon Mar 8 14:05 14/509 "sample"</screen> + + <para>现在, 您通过使用 <command>mail</command> 的 <keycap>t</keycap> + 命令, 并给出邮件的编号, 就可以看到邮件了。 在这个例子中, + 我们将阅读第一封邮件:</para> + + <screen>& <userinput>t 1</userinput> +Message 1: +From root@localhost Mon Mar 8 14:05:52 2004 +X-Original-To: marcs@localhost +Delivered-To: marcs@localhost +To: marcs@localhost +Subject: test +Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST) +From: root@localhost (Charlie Root) + +This is a test message, please reply if you receive it.</screen> + + <para>正如在上面的例子中所看到的, <keycap>t</keycap> + 键将显示完整的邮件头。 要再次查看邮件的列表, + 可以使用 <keycap>h</keycap> 键。</para> + + <para>如果需要回复邮件, 也可以使用 + <command>mail</command> 来完成, 方法是使用 + <keycap>R</keycap> 或 <keycap>r</keycap> + 这两个 <command>mail</command>键。 + <keycap>R</keycap> 键会要求 + <command>mail</command> 只回复发送邮件的人, + 而 <keycap>r</keycap> 不仅回复发送邮件的人, + 而且也会将回复抄送给原来邮件的其他接收者。 + 如果需要, 也可以在这些命令后面指定邮件的编号。 + 做完这些之后, 就可以输入回复了, + 在邮件的最后应该有一个只有一个 <keycap>.</keycap> + 的行, 例如:</para> + + <screen>& <userinput>R 1</userinput> +To: root@localhost +Subject: Re: test + +<userinput>Thank you, I did get your email. +.</userinput> +EOT</screen> + + <para>要发出新邮件, 可以使用 <keycap>m</keycap>, + 后面接收件人的邮件地址。 多个收件人之间, + 应该使用 <keycap>,</keycap> 隔开。 接下来需要输入邮件的主题, + 然后是正文。 同样的, 在邮件最后需要一个只有 <keycap>.</keycap> + 的空行表示结束。</para> + + <screen>& <userinput>mail root@localhost</userinput> +Subject: <userinput>I mastered mail + +Now I can send and receive email using mail ... :) +.</userinput> +EOT</screen> + + <para>在 <command>mail</command> 工具中, 可以用 + <keycap>?</keycap> 来显示帮助, + 而参考 &man.mail.1; 联机手册则可以获得更多关于 <command>mail</command> + 的帮助信息。</para> - <para></para> + <note> + <para>正如前面所提到的那样, &man.mail.1; 命令在设计时没有考虑到要处理附件, + 因而在这方面他的功能很弱。 新的 <acronym>MUA</acronym>, 如 + <application>mutt</application>, 能够更好地处理附件。 + 但如果您仍然希望使用 + <command>mail</command> 命令, 那么 <filename + role="package">converters/mpack</filename> port + 则是一个值得考虑的附加工具。</para> + </note> </sect2> <sect2 id="mutt-command"> - <title>mutt ** 翻译进行中 **</title> + <title>mutt</title> + + <para><application>mutt</application> 是一个短小精悍的邮件用户代理, + 它提供了许多卓越的功能, 包括:</para> - <para></para> + <itemizedlist> + <listitem> + <para>能够按线索阅读邮件;</para> + </listitem> + + <listitem> + <para>支持使用 PGP 对邮件进行数字签名和加密;</para> + </listitem> + + <listitem> + <para>支持 MIME;</para> + </listitem> + + <listitem> + <para>支持 Maildir;</para> + </listitem> + + <listitem> + <para>高度可定制。</para> + </listitem> + </itemizedlist> + + <para>所有这些特性, 都使得 + <application>mutt</application> + 得以跻身于目前最先进的邮件用户代理的行列。 请参考 <ulink + url="http://www.mutt.org"></ulink> + 以了解更多关于 <application>mutt</application> 的资料。</para> + + <para>稳定版本的 <application>mutt</application> + 可以通过 <filename + role="package">mail/mutt</filename> port 来安装, + 而开发版本, 则可以通过使用 <filename + role="package">mail/mutt-devel</filename> port 安装。 + 通过 port 安装之后,可以通过下面的命令来启动 + <application>mutt</application>:</para> + + <screen>&prompt.user; <userinput>mutt</userinput></screen> + + <para><application>mutt</application> 会自动读取 <filename + class="directory">/var/mail</filename> 中的用户信箱, + 并显示其内容。 如果用户信箱中没有邮件, 则 + <application>mutt</application> 将等待来自用户的命令。 + 下面的例子展示了 <application>mutt</application> + 列出邮件的情形:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/mutt1" format="PNG"> + </imageobject> + </mediaobject> + + <para>要阅读邮件, 只需用光标键选择它, + 然后按 <keycap>Enter</keycap> 键。 以下是 + <application>mutt</application> 显示邮件的例子:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/mutt2" format="PNG"> + </imageobject> + </mediaobject> + + <para>和 &man.mail.1; 类似, + <application>mutt</application> 允许用户只回复发件人, + 或者回复所有人。 如果只想回复发信任, 使用 + <keycap>r</keycap> 快捷键。 要回复所有人 (group reply), + 可以用 <keycap>g</keycap> 快捷键。</para> + + <note> + <para><application>mutt</application> 会使用 + &man.vi.1; 命令作为编辑器, 用于创建和回复邮件。 + 这一行为可以通过建立用户自己的 <filename>.muttrc</filename> + 文件来订制, 方法是修改 + <literal>editor</literal> 变量。</para> + </note> + + <para>要撰写新邮件, 需要首先按 + <keycap>m</keycap>。 在输入了有效的邮件主题之后, + <application>mutt</application> 将启动 &man.vi.1;, + 您可以在其中撰写邮件。 写好邮件的内容之后, + 存盘并退出 <command>vi</command>, 则 + <application>mutt</application> 将继续, + 并显示一些关于将发出的邮件的摘要信息。 + 要发送邮件, 只需按 <keycap>y</keycap>。 + 下面给出了摘要信息的一个例子:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/mutt3" format="PNG"> + </imageobject> + </mediaobject> + + <para><application>mutt</application> 也提供了相当详尽的帮助, + 在绝大多数菜单中, 都可以使用 <keycap>?</keycap> 键将其呼出。 + 屏幕顶行中也会给出常用的快捷键。</para> </sect2> <sect2 id="pine-command"> - <title>pine ** 翻译进行中 **</title> + <title>pine</title> + + <para><application>pine</application> 主要是针对初学者设计的, + 但也提供了一些高级功能。</para> - <para></para> + <warning> + <para>过去, <application>pine</application> 软件被发现有许多远程漏洞, + 这些漏洞会允许远程的攻击者在用户的本地系统上, + 通过发送精心炮制的邮件来执行任意的代码。 所有的 + <emphasis>已知</emphasis> 问题都已经被修正了, 但 + <application>pine</application> 的代码是以很不安全的风格编写的, + 并且 &os; 安全官相信仍然有一些尚未被发现的安全漏洞。 + 您应当考虑并承担安装 + <application>pine</application> 可能带来的风险。</para> + </warning> + + <para>最新版本的 <application>pine</application> + 可以通过使用 <filename + role="package">mail/pine4</filename> port 来安装。 + 装好之后, <application>pine</application> + 可以通过下面的命令启动:</para> + + <screen>&prompt.user; <userinput>pine</userinput></screen> + + <para>第一次启动 <application>pine</application> 时, + 它会显示出一个欢迎页, 并给出简要的介绍, + 以及 <application>pine</application> 开发小组要求用户匿名发送一封邮件, + 以便帮助他们了解有多少用户在使用他们开发的客户程序的请求。 + 要发送这封匿名的邮件, 请按 <keycap>Enter</keycap>, + 您也可以按 <keycap>E</keycap> 退出, + 而不发送匿名邮件。 下面是欢迎页的一个例子:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/pine1" format="PNG"> + </imageobject> + </mediaobject> + + <para>接下来展现给用户的将是主菜单, + 可以很容易地通过光标键在上面进行选择。 + 这个主菜单提供了用于撰写新邮件、 浏览邮件目录, + 甚至管理地址簿等等的快捷方式。 + 主菜单下面是完成各种功能的快捷键说明。</para> + + <para>由 <application>pine</application> + 打开的默认目录是 <filename class="directory">inbox</filename>。 + 要查看邮件所以in, 应按 + <keycap>I</keycap>, 或选择下面所示的 <guimenuitem>MESSAGE INDEX</guimenuitem> + 选项:</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/pine2" format="PNG"> + </imageobject> + </mediaobject> + + <para>邮件索引展示了当前目录下的邮件, + 可以使用光标键翻阅。 按 + <keycap>Enter</keycap> 键阅读高亮选定的邮件。</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/pine3" format="PNG"> + </imageobject> + </mediaobject> + + <para>在上面的截屏中, 使用 + <application>pine</application> 显示了一封示例邮件。 + 在屏幕底部也显示了快捷键供参考。 其中的一个例子是 <keycap>r</keycap> 键, + 它告诉 <acronym>MUA</acronym> 回复正显示的邮件。</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/pine4" format="PNG"> + </imageobject> + </mediaobject> + + <para>在 <application>pine</application> 中回复邮件, + 是通过 <application>pico</application> 编辑器完成的, + 后者默认情况下会随 <application>pine</application> 一起安装。 + 而 <application>pico</application> 工具使得浏览邮件变得更加简单, + 并且要比 &man.vi.1; 或 &man.mail.1; 更能容忍误操作。 + 回复写好之后, 可以用 + <keycombo action="simul"><keycap>Ctrl</keycap><keycap>X</keycap> + </keycombo> 来发出它。 此前, <application>pine</application> + 程序会要求确认。</para> + + <mediaobject> + <imageobject> + <imagedata fileref="mail/pine5" format="PNG"> + </imageobject> + </mediaobject> + + <para><application>pine</application> 程序可以通过使用主菜单中的 + <guimenuitem>SETUP</guimenuitem> 选项来进行定制。 + 请参考 <ulink url="http://www.washington.edu/pine/"></ulink> + 来了解更多信息。</para> </sect2> </sect1> @@ -1553,13 +1920,84 @@ sasl_pwcheck_program="/usr/local/sbin/pwcheck"</programlisting> </author> </authorgroup> </sect1info> - <title>Using fetchmail ** 翻译进行中 **</title> + <title>使用 fetchmail</title> <indexterm> - <primary>Using fetchmail</primary> + <primary>fetchmail</primary> </indexterm> - <para></para> + <para><application>fetchmail</application> 是一个全功能的 + <acronym>IMAP</acronym> 和 <acronym>POP</acronym> 客户程序, + 它允许用户自动地从远程的 + <acronym>IMAP</acronym> 和 <acronym>POP</acronym> 服务器上下载邮件, + 并保存到本地的信箱中; 这样, 访问这些邮件就变得更方便了。 + <application>fetchmail</application> 可以通过 + <filename role="package">mail/fetchmail</filename> port 安装, + 它提供了许多有用的功能, 其中包括:</para> + + <itemizedlist> + <listitem> + <para>支持 <acronym>POP3</acronym>、 + <acronym>APOP</acronym>、 <acronym>KPOP</acronym>、 + <acronym>IMAP</acronym>、 <acronym>ETRN</acronym> 以及 + <acronym>ODMR</acronym> 协议。</para> + </listitem> + + <listitem> + <para>通过 <acronym>SMTP</acronym> 转发邮件, + 这使得过滤、 转发, 以及邮件别名能够正常工作。</para> + </listitem> + + <listitem> + <para>能够以服务程序的方式运行, 并周期性地检查邮件。</para> + </listitem> + + <listitem> + <para>能够从多个信箱收取邮件, 并根据配置, + 将这些邮件转发给不同的本地用户。</para> + </listitem> + </itemizedlist> + + <para>尽管介绍全部 <application>fetchmail</application> 的功能超出了本书的范围, + 但这里仍然介绍了其基本的功能。 + <application>fetchmail</application> 工具需要一个名为 + <filename>.fetchmailrc</filename> 的配置文件才能正常工作。 + 这个文件中包含了服务器信息, 以及登录使用的凭据。 + 由于这个文件包含敏感内容, 建议将其设置为只有属主所有, + 使用下面的命令:</para> + + <screen>&prompt.user; <userinput>chmod 600 .fetchmailrc</userinput></screen> + + <para>下面的 <filename>.fetchmailrc</filename> 提供了一个将某一用户的信箱通过 + <acronym>POP</acronym> 下载到本地的例子。 它告诉 + <application>fetchmail</application> 连接到 <hostid + role="fqdn">example.com</hostid>, 并使用用户名 + <username>joesoap</username> 和口令 + <literal>XXX</literal>。 这个例子假定 + <username>joesoap</username> 同时也是本地的系统用户。</para> + + <programlisting>poll example.com protocol pop3 username "joesoap" password "XXX"</programlisting> + + <para>下一个例子将连接多个 <acronym>POP</acronym> + 和 <acronym>IMAP</acronym> 服务器, 并根据需要转到不同的本地用户:</para> + + <programlisting>poll example.com proto pop3: +user "joesoap", with password "XXX", is "jsoap" here; +user "andrea", with password "XXXX"; +poll example2.net proto imap: +user "john", with password "XXXXX", is "myth" here;</programlisting> + + <para>另外, <application>fetchmail</application> 也可以通过指定 + <option>-d</option> 参数, 并给出 <application>fetchmail</application> + 在轮询 <filename>.fetchmailrc</filename> 文件中列出的服务器的时间间隔, + 来以服务程序的方式运行。 下面的例子会让 <application>fetchmail</application> + 每 60 秒轮询一次:</para> + + <screen>&prompt.user; <userinput>fetchmail -d 60</userinput></screen> + + <para>更多关于 <application>fetchmail</application> 的资料, + 可以在 <ulink + url="http://www.catb.org/~esr/fetchmail/"></ulink> 找到。</para> </sect1> <sect1 id="mail-procmail"> @@ -1572,13 +2010,74 @@ sasl_pwcheck_program="/usr/local/sbin/pwcheck"</programlisting> </author> </authorgroup> </sect1info> - <title>Using procmail ** 翻译进行中 **</title> + <title>使用 procmail</title> <indexterm> - <primary>Using procmail</primary> + <primary>procmail</primary> </indexterm> - <para></para> + <para><application>procmail</application> 是一个强大得惊人的过滤进入邮件的应用程序。 + 它允许用户定义 <quote>规则</quote>, 并用这些规则来匹配进入的邮件, + 进而执行某些特定的功能, 或将这些邮件转发到其他信箱和/或邮件地址。 + <application>procmail</application> 可以通过 + <filename role="package">mail/procmail</filename> port 来安装。 + 装好之后, 可以直接把它集成到绝大多数 + <acronym>MTA</acronym> 中; 请参考您使用的 <acronym>MTA</acronym> + 的文档了解具体的作法。 另外, + <application>procmail</application> + 可允许通过把下面的设置加入到用户主目录中的 <filename>.forward</filename> + 文件中, 来启用 + <application>procmail</application> 功能:</para> + + <programlisting>"|exec /usr/local/bin/procmail || exit 75"</programlisting> + + <para>接下来我们将介绍一些基本的 + <application>procmail</application> 规则, 以及它们都是做什么的。 + 各种各样的规则, 都应该写到 <filename>.procmailrc</filename> + 文件中, 而这个文件则必须放在用户的主目录下。</para> + + <para>主要的规则, 也可以在 + &man.procmailex.5; 联机手册中找到。</para> + + <para>将所有来自 <email>user@example.com</email> 的邮件, + 转发到外部地址 <email role="nolink">goodmail@example2.com</email>:</para> + + <programlisting>:0 +* ^From.*user@example.com +! goodmail@example2.com</programlisting> + + <para>转发所有不超过 1000 字节的邮件到外部地址 + <email role="nolink">goodmail@example2.com</email>:</para> + + <programlisting>:0 +* < 1000 +! goodmail@example2.com</programlisting> + + <para>把所有发送到 <email>alternate@example.com</email> + 的邮件放到信箱 <filename>alternate</filename> 中:</para> + + <programlisting>:0 +* ^TOalternate@example.com +alternate</programlisting> + + <para>将所有标题为 <quote>Spam</quote> 的邮件发到 + <filename>/dev/null</filename>:</para> + + <programlisting>:0 +^Subject:.*Spam +/dev/null</programlisting> + + <para>将收到的所有 <hostid role="domainname">&os;.org</hostid> 邮件列表的邮件, + 转发到各自的信箱:</para> + + <programlisting>:0 +* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG +{ + LISTNAME=${MATCH} + :0 + * LISTNAME??^\/[^@]+ + FreeBSD-${MATCH} +}</programlisting> </sect1> </chapter> |