qmail简单安装

来源:互联网 发布:中级程序员考试大纲 编辑:程序博客网 时间:2024/05/22 11:48

qmail简单安装

网上文章一堆, 我只是简单总结, 并且只是安装qmail,不涉及web端或者数据库什么的。我们安装的qmail就是为了程序发送邮件,简单小巧,安装也很简单,qmail不监听端口,只是为了给程序调用发送邮件。
平台是再FreeBSD5.4下面,当然,你也可以使用ports来安装,那就更简单了。

1. ports安装

cd /usr/ports/mail/qmail
make install
make disable-sendmail
make enable-qmail


2. 手工安装

(1)下载netqmail
下载并且解压缩文件,假设你下载到了 /tmp 目录下
wget http://www.qmail.org/netqmail-1.05.tar.gz
tar zxvf netqmail-1.05.tar.gz

(2)打补丁和配置
打补丁
cd netqmail-1.05
./collate.sh

修改配置文件
vi /tmp/netqmail-1.05/netqmail-1.05/conf-qmail
把第一行 /var/qmail 修改为 /var/netqmail

(3)建立组和用户
建立nofiles组和qmail组:
pw group add nofiles
pw group add qmail
建立一堆用户
pw user add alias -g nofile
pw user add qmaild -g nofile
pw user add qmaill -g nofile
pw user add qmailp -g nofile
pw user add qmailr -g qmail
pw user add qmails -g qmail
pw user add qmailq -g qmail


(4)安装启动
创建qmail安装目录:/var/netqmail
mkdir /var/netqmail

编译安装
make setup check

设置自己和smtp路由,这个根据具体情况设置,不清楚可以查看文档
vi /usr/netqmail/control/me
remote-deliver.xxxx.com (后面是域名)

vi /usr/netqmail/control/smtproutes
:192.168.0.1 (路由IP)

复制启动文件
cp /var/netqmail/boot/home  /var/netqmail/rc

启动服务
csh -cf '/var/netqmail/rc &'

查看进程或者服务
ps | grep 'qmail'


(5)关闭sendmail
我们不使用sendmail,所以关闭sendmail,再FreeBSD下关闭是编辑 /etc/rc.conf文件,加上一句:
sendmail_enable="NONE"
就彻底关闭了,如果设置为NO,就是只关闭服务,不关闭端口监听


3. 调用qmail进程发送邮件
qmail发送邮件的进程是 /var/netqmail/bin/qmail-inject,因为我们这里qmail不监听端口,所以我们直接调用该进程来发送邮件。
可以使用php的popen()或者perl、ruby中的进程调用函数来调用qmail发送进程来发送邮件,不过要遵守基本的发送基本。

例如使用php发送邮件:

/* 使用qmail发送邮件函数 */
function send_check_mail($email, $subject,$uid,$buffer)
{
 $command =  "/var/qmail/bin/qmail-inject ".$email; //qmail程序地址,$email是要发送的地址
 $handle = popen($command, "w"); //打开管道
 if (!$handle) {
  return false;
 }

 $from = "webmaster@unixsky.net"; //发件人
 fwrite($handle, "From: ".$from."/n"); //往管道写数据
 fwrite($handle, "Return-Path: ".$from."/n");
 fwrite($handle, "To: ".$uid."/n");
 fwrite($handle, "Subject: ".$subject."/n");
 fwrite($handle, "Mime-Version: 1.0/n");
 fwrite($handle, "Content-Type: text/html; charset=/"gb2312/"/n/n");
 fwrite($handle, $buffer."/n");
 pclose($handle); //关闭管道

 return true;
}


更详细发送邮件可以参考我的文章:http://blog.csdn.net/heiyeshuwu/archive/2005/08/18/458170.aspx


其他安装qmail文章请参考下面:
http://blog.csdn.net/heiyeshuwu/archive/2004/11/20/188587.aspx
http://blog.csdn.net/heiyeshuwu/archive/2004/11/20/188578.aspx
http://blog.csdn.net/heiyeshuwu/archive/2004/11/20/188551.aspx


heiyeluren   2005/10/28




原创粉丝点击