Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->网络应用 ->邮件服务器 ->Qmail ->正文

Life with qmail -- 中文版

来源:Linuxdby.com 作者:Webmaster 时间:2007-05-28 点击: [收藏] [投稿]
不是 root 用户. 另外的方式, 你的 useradd 和 adduser 命令可能支持"skeleton"骨架目录, 例如: /etc/skel, 然后可以直接复制这个目录给所有新用户.

4.1.4. 转发邮件

转发邮件就是将邮件重发到指定地址. 这些写入.qmail文件内的地址不能包含注释部分和多余的空格.

下面的写法是错的:

    %26amp;    %26amp; user@example.com    %26amp;Joe User 

下面的是正确的写法:

    %26amp;user@example.com    user@example.com    %26amp;user

前两个将邮件副本转发给 user@example.com, 最后一个将邮件副本转发给本地用户 user.

4.1.5. 扩展地址

qmail 支持用户控制扩展地址. 在基本地址 username@hostname.domain 上扩展的扩展地址为: username-extension@hostname.domain ,用户同样可以接收发往扩展地址的邮件. 在本节其余部分, 我们讨论的范围都是在本地系统上, 所以我们将不再使用"@hostname.domain" 部分.

给用户 username 的邮件传送指令由 ~username/.qmail 文件指定. 对于型如username-extension 的扩展地址的传送指令由用户目录下的~username/.qmail-extension 文件指定.

举一个例子, dave-lwq@sparge.example.com 这个扩展地址的传送将由文件 ~dave/.qmail-lwq 来控制.

扩展地址可以拥有多个字段, 例如 dave-list-qmail 这个扩展地址, 由 ~dave/.qmail-list-qmail 来控制. 在这个例子里面, dave-list-qmai 这个地址被用来订阅 qmail 的邮件列表, ~dave/.qmail-list-qmail 则负责归档这个列表的邮件到单独的邮箱里面.

.qmail 文件可以用-default 后缀进行匹配。 所以 dave-list-qmail 可以由 ~dave/.qmail-list-default 操作. 这个文件可以一对多方式用一个.qmail文件控制所有型如 dave-list-加上任何后缀的地址. 注意 dave-list 不能由 ~dave/.qmail-list-default 控制, 因为在"list"后面没有"-".

qmail 会使用最接近的匹配方式. 例如, qmail在传送一个标志着送给dave-list-qmail这个地址的邮件时, 会按照下面顺序查找.qmail控制文件, 并按照最先匹配的.qmail文件传送这个邮件.

    .qmail-list-qmail    .qmail-list-default    .qmail-default

如果没有找到相匹配的.qmail文件, 传送失败, 并且将邮件反弹给发送者.

4.2. 发送邮件

邮件用户通常并不直接发送邮件. 典型的方式是利用邮件用户代理(Mail User Agent, MUA)程序, 例如 pine 或者 mutt 编写并发送邮件. MUA程序调用MTA传送邮件. 这个处理邮件到MTA的调用过程称为注入(injection).

有两种方式完成注入, 一种利用SMTP协议(Simple Mail Transfer Protocol, SMTP), 或者利用MTA提供的的特定程序.

4.2.1. SMTP 方式

MUA程序可以使用TCP协议连接到标准的SMTP协议端口25, 可以是本地主机或者指定的邮件服务器. MUA和MTA后续进行的回话导致两个结果:

  • 邮件被传送给MTA, 或者
  • 返回一份错误报告给MUA

SMTP没有身份认证的机制, 所以发送邮件的过程是不要求用户名和密码的. 但是, 大多数MTA拒绝接收既不是来自本地用户也不是发送给本地用户的邮件的. 如果一个恰当的格式的邮件被MTA拒绝, 最大的可能就是转信限制造成. 参见转信小节查看更多的如何配置转信的信息.

4.2.2. /var/qmail/bin/sendmail 文件

很多年以来, UNIX MTA一直都是Sendmail. 由于Sendmail的应用十分普遍, 许多程序员假定它是默认的MTA. 结果, Sendmail的本地注入机制成为标准的本地邮件注入的应用编程接口(Application Programmer's Interface, API). qmail 以及其他非Sendmail的MTA因此也提供一个sendmail程序应用于本地注入方式上, 它的工作方式和真正的Sendmail 的 sendmail程序一样.

qmail 的用于替换Sendmail相应部分的 sendmail 程序, 通常位于 /var/qmail/bin/sendmail, 典型的Sendmail的程序位于下面这些位置:

  • /usr/lib/sendmail
  • /usr/sbin/sendmail

在qmail系统里面, 使用命令"ls -l path-to-sendmail"将会显示出, sendmail实际上是一个指向/var/qmail/bin/sendmail 的符号连接.

  $ ls -l /usr/lib/sendmail  lrwxrwxrwx   1 root     root           29 Feb 19 11:04 /usr/lib/sendmail -> /var/qmail/bin/sendmail

4.2.3. qmail-inject

除了模仿 sendmail 的 API之外, qmail 也拥有自己的注入程序: qmail-inject. 实际上, qmail提供的sendmail 程序只是一个qmail-inject的外壳程序.

作为一个API标准, sendmail可能更好用, 因为它使用广泛. qmail的API由qmail-inject提供, 只能在qmail系统下运行, 而sendmail接口几乎是全球通用的.

举一个例子, 可以这样发送一个空白邮件给 joe@example.com:

 echo To: joe@example.com | /var/qmail/bin/qmail-inject

4.3. 环境变量

一些qmail程序设定和使用环境变量, 下面的表格列出了这些变量并且描述了他们的用法.



 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Postfix Ecartis HOWTO - 集成ecartis + Postfix   下一篇:Maildrop的若干常见问题集锦(FAQ)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
名字 Man 帮助页设置/使用使用目的
DATABYTES qmail-smtpd 使用 重载control/databytes文件
DEFAULT qmail-command 设置 在.qmail文件名中匹配"-default"的地址部分
DTLINE qmail-command 设置 邮件头Delivered-To部分
EXT qmail-command 设置 地址扩展
EXT2 qmail-command 设置 第一个破折号后面的EXT的一部分