当前位置:操作系统 > Unix/Linux >>

FreeBSD邮件服务器

电子邮件



  FreeBSD支持在Internet上收发电子邮件,也能被用作一台功能强大的邮件服务器,为众多使用不同操作系统的客户机服务。
  • 邮件服务器



  Internet上与电子邮件相关的协议主要有SMTP、POP3和IMAP,其中SMTP是邮件传输协议,用于计算机之间交换电子邮件,POP3和IMAP是用于客户计算机远程访问邮件主机上时使用的。

  FreeBSD系统缺省即包括了sendmail程序,它按照SMTP协议在Internet上接收和发送E mail。sendmail在缺省设置下就已经能够正常工作,一般情况不需要进行改动。如果更改sendmail的配置,就需要更改sendmail的配置文件sendmail.cf,这个文件相当复杂、难于设置。因此如果希望设置邮件服务器的一些特殊属性,就需要小心更改sendmail,讨论sendmail的设置不在本书的范围之内,并且,还有其他的邮件服务器能用来代替sendmail,来完成接收和发送Internet邮件的任务。通常这些sendmail的代替者具备更高的性能、易于更改设置,并且没有sendmail中经常报告的安全漏洞,因此如果需要定制邮件服务器,推荐使用这些sendmail的代替产品,例如qmail或postfix。

  如果系统的用户经常使用其他计算机,如运行Windows9x的个人计算机,来访问自己的电子邮件,可以在服务器端安装支持POP3或IMAP4的服务程序,这样Windows9x中的电子邮件客户软件就能访问服务器中的邮件。pop3协议比较简单,因此Windows下一般的电子邮件处理软件都支持pop3协议,相对而言IMAP协议更复杂一些,对电子邮件的支持能力更强,但支持imap协议的软件就较少。比较流行的电子邮件软件可以支持这两种协议,如netscape messager、Eudro等。因此服务器可以有选择的支持这两种协议。

  如果仅需要提供POP3支持,可以使用qpopper,而要同时支持POP3和IMAP,就可以安装imap-uw(uw指 University of Washington,IMAP协议和这个服务器程序的开发者)。安装imap-uw之后,还需要更改 inetd.conf,增加以下行:pop3

  stream

  tcp

  nowait

  root

  /usr/local/libexec/ipop3d

  ipop3dimap4

  stream

  tcp

  nowait

  root

  /usr/local/libexec/imapd

  imapd


  重起inetd,则远程用户就能在其客户软件中处理电子邮件了。

在FreeBSD上查看邮件



  FreeBSD上的用户可以通过mail程序来查看自己的Email,mail是一个最基本的交互式Unix 命令,可以运行在任何类型的终端上,然而使用它来处理邮件也很不方便。使用者常常安装其他更为便利的电子邮件客户程序来处理自己的邮件,这些软件有elm、mutt、pine,以及只用于X下的 netscape messager、kmail等。

  

  虽然基于X的邮件处理软件比较方便和易于学习,然而通过网络远程直接使用这些X程序比较麻烦,不是任何计算机上都运行了X服务器的。而几乎所有的计算机系统中都支持telnet等字符终端连接软件,使用支持字符终端的邮件处理程序就使得使用者无论身在何处,只要连接到自己的主机上就能处理自己的电子邮件。

  在远端访问自己的电子邮件的另一种方式是:首先在远端的客户机上安装、配置电子邮件软件,再使用这些软件访问自己主机上的邮件。这些远程访问邮件服务器的软件使用POP3协议或者 IMAP协议,让用户查看远程计算机上的邮件。

  这两种方式的不同在于邮件处理软件的安装位置,安装在主机上的邮件处理程序基于X或字符终端,不需要改动客户计算机上的任何配置,因此适用于经常改变客户机的使用者。安装在客户机上的用户可以充分发挥客户计算机的优势,例如MS Windows的用户界面,这种方式适用于拥有固定个人用计算机的使用者。这两种方式并不相互冲突,而是相互补充的,适合不同情况的使用者。
  • 邮件处理程序pine


  由于基于字符终端的邮件软件启动快捷,能通过telnet等防真终端使用,而不需改变客户计算机的任何配置。因此Unix的使用者至少都会选择安装一种基于字符终端的邮件处理软件,以作为最基本的邮件处理软件。pine就是其中之一,它提供了简洁的字符菜单界面,功能强大且易于操作,易用性超过很多图形接口的邮件处理程序。

  在Pine的主菜单下,可以执行发送电子邮件(Compose message),查看当前文件夹的内容(Message index),选择不同的文件夹(Folder list),使用和维护地址簿(Address Book),使用S(Setup)用于设置Pine,使用Q(Quit)退出pine回到shell提示下。正常情况下,不需要对 pine进行任何设置,就能正常使用pine阅读和发送电子邮件。

  然而当使用pine来发送中文邮件时,pine会对中文进行重新编码,以适应7位传输,虽然大部分电子邮件客户都会识别这些标准的编码格式,但还是有一些电子邮件程序不能识别出这些编码,造成阅读问题。此时就可以重新设置pine直接使用8位编码。

  

  在主菜单下选择Setup,当出现提示时,使用Config进入配置部分。就可以搜寻包含enable-8-bits 的两个选项,配置自己使用的字符集(由于pine中不直接支持中文字符集,可以设置为ISO-8858-1),以支持8位字符。

  还可以在这里设置Pine来阅读Usenet新闻,这就要在nntp-server的选项中填写本地新闻服务器的域名,并配置news-collections选项,例如本地新闻服务器的名字为news,那么news-collections 就应设为 ”*{news/nntp}/[]”。也可以设置远程文件夹,使得Pine能访问远程主机上的邮件。

  Pine缺省支持使用IMAP协议访问远程主机上的邮箱,但它对POP3的支持未在其文档中公布,不能使用设置程序来完成。可以手工更改用户个人目录下的配置文件.pinerc中的选项incoming-folders,以支持POP3,下面为一个例子:

  incoming-folders="imapfolder" {imaphost}INBOX,

  "pop3folder"

  {pop3host/pop3/user=wb}INBOX


  这个例子中配置了两个远程帐户,一个为imaphost上的邮箱,使用IMAP协议进行访问,在 pine中的文件夹名为imapfolder,第二个为pop3host上的邮箱,后面使用/pop3指明使用pop3协议,/user=wb指明使用wb作帐户名,其文件夹的名字为pop3folder。使用这样的格式就能使pine来管理多个计算机上的多个邮箱。

  那么再次启动pine就能有位于不同主机上的相应incoming和nntp文件夹,用户打开相应的文件夹就能使用imap、pop3或nntp等不同协议,访问相应的邮件或新闻了。
  • 使用fetchmail管理多邮件帐户


  尽管使用pine能非常方便的管理多个POP3或IMAP邮箱,但是如果邮箱主机与当前FreeBSD系统的网络连接很慢,使用pine来阅读这些邮箱中的邮件就非常迟缓。此时更好的办法是先在后台将邮件取到回本地邮箱中,然后使用pine或其他邮件处理程序进行处理。

  fetchmail就是一个非常方便的从远程邮件主机下载邮件的应用软件,它支持pop3、imap,以及对pop3的一些扩展协议。当安装好fetchmail之后,使用者可以直接启动fetchmail,来取得邮件的方法为:

  $ fetchmail -p pop3 -u wangb email.online.ha.cnpassword for wangb@email.online.ha.cn:

  在输入正确的口令之后,fetchmail将使用pop3协议访问主机email.online.ha.cn,并取回用户wangb的电子邮件,取回的电子邮件将发送到本地邮箱中。也可以用更复杂的方式在后台运行 fetchmail,则需要设置个人目录下的.fetchmailrc文件。

  

  $ cat ~/.fetchmailrcpoll email-wangb via email.online.ha.cn

  protocol pop3

  authenticate password

  username wb here is wangb there

  password "1111"

  smtphost localhost

  pass8bits

  stripcr

  fetchall$ chmod 700 ~/.fetchmailrc


  设置文件中第一行poll email-wangb via email.online.ha.cn中设置了要下载邮件的邮件服务器为email.online.ha.cn,其中email-wangb为对应这一个帐号的标签名字,用于区分多个不同的邮箱。然后指定使用的协议为pop3,认证方式为标准的Unix口令认证,然后,定义了远端主机上的邮件帐户名为wangb(用there表示远端主机设置),邮件下载到本地用户wb的邮箱中(使用here 指明本地主机设置)。

  smtphost定义了fetchmail用来转发邮件时使用的smtp主机,passsword定义了远程邮件服务器中帐户的口令,在口令中使用了数字或特殊字符时,就需要使用双引号将口令括起来。pass8bits 允许下载邮件中存在8位字符,stripcr用于过滤额外回车字符,由于DOS和Unix在文本定义上的不同,这一项用于兼容一些不识别这个差异之处的Windows系统的邮件服务器,fetchall表示取回全部邮件,否则就只取回最新的邮件。

  此外,这个文件因为包括了远端服务器的口令,因此必须具备属性700,以避免其他用户能读取这个文件,否则fetchmail不会运行。

  这样,就可以不使用任何命令行参数,直接在后台运行fetchmail了。每个用户可以使用cron来运行自己的fetchmail命令,来管理自己的邮件,而拨号用户可以在拨号后,使用ppp.linkup启动fetchmail ,取回自己的邮件。
  • 使用Procmail设置邮件过滤


  由于Internet的使用者不但使用电子
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,