部署Extmail邮件系统需注意几点

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

部署开源邮件系统?推荐使用国产的Extmail邮件系统,ExtMail Project 是一个活跃的开源邮件系统项目,目前由ExtMail 团队维护,该项于2005年9月18日正式启动,最初以WebMail软件为主,至今已逐步形成了ExtMail软件系列,目前ExtMail 1.3 已经在开发中,期待中!


一 部署Extmail前

 
  1. 1 整个 extmail邮件系统,是由多个软件构成的: 
  2. 软件名称         功能 (注意:没有列出反垃圾邮件软件与杀毒软件)   
  3. ExtMan           Web帐户管理后台(含mailgraph_ext 图形日志分析) 
  4. ExtMail          WebMail(perl 程序) 
  5. Apache           Web服务器(MUA 通过浏览器收发邮件)  
  6. Postfix          SMTP服务器,邮件传输代理(MTA) 
  7. Maildrop         邮件投递代理(MDA) 
  8. Courier-imap     IMAP和POP3 服务器 
  9. Cyrus-sasl2      标准的SASL实现库,可以支持Courier Cyrus SMTP认证库 
  10. Courier-authlib  负责courier-imap,maildrop的认证 Courier 数据认证库(mysql) 
  11. MySQL            数据库,储存虚拟(域|用户|别名)等信息. 
  12.  
  13.  
  14. 2 确定postfix 支持的smtp认证方式,与支持的查询表(必须包含mysql格式) 
  15. smtp 认证方式 
  16. postconf -a 
  17. cyrus     (sasl库) 
  18. dovecot 
  19.  
  20. 支持的查询表     
  21. postconf -m        
  22. btree 
  23. cidr 
  24. environ 
  25. hash 
  26. ldap 
  27. mysql      (包含mysql) 
  28. nis 
  29. pcre 
  30. proxy 
  31. regexp 
  32. static 
  33. tcp 
  34. unix 
  35.  
  36. 注意: redhat/centos 自带的postfix不支持mysql方式的查询表,所以你可能需要以源码的方式重新安装postfix 并且开启mysql支持!!! 
  37.  
  38.  
  39. 3 extmail 发信,收信,(web登陆)认证逻辑图 
  40.  
  41. +++++++++++++++++++++++++++++++++++++++++++++++++ 
  42. + smtp/25  +   po3/110        +  http/80        +  
  43. + postfix  +   courier-imap   +  apache         + 
  44. +++++++++++++++++++++++++++++++++++++++++++++++++ 
  45. +           cyrus-sasl2                         + 
  46. +++++++++++++++++++++++++++++++++++++++++++++++++ 
  47. +           courier-authlib                     + 
  48. +++++++++++++++++++++++++++++++++++++++++++++++++ 
  49. +           mysql                               + 
  50. +++++++++++++++++++++++++++++++++++++++++++++++++ 
  51.  
  52. 3.1 smtp认证流程 
  53. smtp/25    
  54. postfix  
  55.    |  <-- smtp 认证 
  56. cyrus-sasl2 
  57.    |  <-- smtpd.conf 配置文档(设置了authdaemond的Unix套接字的路径) 
  58. courier-authlib 
  59.    |  <-- authmysqlrc 配置文档(设置了mysql相关信息) 
  60. mysql  
  61.    |  -- I:储存虚拟(域|用户|别名)等信息. 
  62.  
  63.  
  64.  
  65.  
  66. 3.2 smtp认证 相关的配置文档 
  67. postfix 
  68. 10.0.100.88 [~]$ rpm -qf /usr/lib64/sasl2/smtpd.conf  
  69. postfix-2.6.2-5hzq 
  70.  
  71. 10.0.100.88 [~]$ cat /usr/lib64/sasl2/smtpd.conf  
  72. pwcheck_method: authdaemond 
  73. log_level: 3 
  74. mech_list: PLAIN LOGIN 
  75. authdaemond_path:/var/spool/authdaemon/socket 
  76. --------------------------------------------------------------- 
  77. pwcheck_method SASL 库 auxprop(默认值) 
  78. (描述:空格分隔开的用来效验密码的机制列表,值可能是 sasl_checkpass,auxprop, 
  79. saslauthd,pwcheck,authdaemond【如果编译时添加了 --with-authdaemond 】 
  80.  
  81. mech_list SASL 库 使用所有有效插件 
  82. (描述:空格分隔开的允许使用的机制的列表,比如:'plain otp'。用来在安装的插件 
  83. 中限制出一个可用机制的子集。) 
  84.  
  85. authdaemond_path SASL 库 /dev/null(默认值) 
  86. (描述:Courier-authlib 的 authdaemond 的 Unix 套接字的路径。仅当 pwcheck_method 设 
  87. 置为 authdaemond 时可用。) 
  88. ------------------------------------------------------------------- 
  89.  
  90. courier-authlib 
  91. 10.0.100.88 [~]$ rpm -qf /var/spool/authdaemon/socket 
  92. courier-authlib-0.62.4-2hzq 
  93.  
  94. 10.0.100.88 [~]$ cat /etc/authlib/authmysqlrc 
  95. MYSQL_SERVER            localhost 
  96. MYSQL_USERNAME          extmail 
  97. MYSQL_PASSWORD          xmall.com 
  98. MYSQL_SOCKET            /var/lib/mysql/mysql.sock 
  99. MYSQL_PORT              3306 
  100. ................................... 
  101.  
  102.  
  103. 4 了解 postfix 的查询表 
  104. postfix 有许多的重要参数(main.cf)都需要能够查询其对应关系,将所有的对应关系保存在另外一个文件  "查询表" 
  105.  
  106. 查询表格式: 
  107. 查询表的原始数据来自简单的文本文件,文件的每一行定义一组 "key_value" 对应关系,key 与 value 
  108. 以空白隔开,例如: 
  109. cat /etc/postfix/local_in_senders 
  110. tech@xmall.com  local_in_only 
  111. it@xmall.com        local_in_only 
  112.  
  113. postmap命令创建查询表的数据库文件 
  114. postmap /etc/postfix/local_in_senders  
  115. file /etc/postfix/local_in_senders.db  
  116. /etc/postfix/local_in_senders.db: Berkeley DB (Hash, version 8, native byte-order) 
  117.  
  118. postfix 默认的查询表数据格式为hash 
  119. postconf | grep 'default_database_type' 
  120. default_database_type = hash 
  121.  
  122. 当将查询表赋值给相关参数时,则必须指出查询表的数据库类型,例如: 
  123. postconf | grep 'hash:/'  
  124. alias_database = hash:/etc/aliases 
  125. alias_maps = hash:/etc/aliases, nis:mail.aliases 
  126.  
  127. 查询表的特例-别名文件 
  128. 由于别名文件的格式不同于postfix 其它的postfix 查询表,所以不能使用postmap 创建别名的数据库文件,而应该使用postalias/newalias; 
  129. 别名文件位置:alias_maps = hash:/etc/aliases, nis:mail.aliases 
  130. 别名文件格式: 
  131. grep -vE '(^$|^#)' /etc/aliases | head -n 3 
  132. mailer-daemon:  postmaster 
  133. postmaster:     root 
  134. bin:            root 
  135. daemon:     root 
  136.  
  137.  
  138. 5 linux系统 用 32位 还是 64位? 
  139. 如果邮件比较少,邮件操作系统压力不大的话,32位或者64位都可以,只不过部署extmail(源码)时要区分一下,比如: 
  140. i386 
  141. /usr/lib/sasl2/smtpd.conf 
  142. /usr/lib/mysql/ 
  143.  
  144. x86_64 
  145. /usr/lib64/sasl2/smtpd.conf 
  146. /usr/lib64/mysql/ 
  147.  
  148.  
  149. 6 linux系统硬盘分区 
  150. 建议 /var /home 单独分区,原因有两个 
  151. 1 因为extman 与 extmail都是以 /home/domains作为基础目录 
  152. 2 /var/log/maillog 邮件日志; /var/spool/postfix 邮件队列 
  153.  
  154. 10.0.100.88 [xmall.com]$ pwd 
  155. /home/domains/xmall.com 
  156. 10.0.100.88 [xmall.com]$ du -sh * 
  157. 120K    zm1 
  158. 436M    zm2 
  159. 10.0.100.88 [xmall.com]$ ll 
  160. total 8 
  161. drwx------ 3 vuser vgroup 4096 Dec 19 16:00 zm1 
  162. drwx------ 3 vuser vgroup 4096 Dec 19 16:00 zm2 
  163.  
  164. 7 安装依赖rpm包 (这里使用了本地cdrom源,如果你不是本地yum源,请直接yum install 后边的rpm包)
  165. yum --disablerepo=\* --enablerepo=c5-media install httpd php php-mysql mysql mysql-server mysql-devel openssl-devel perl-DBD-MySQL tcl tcl-devel libart_lgpl libart_lgpl-devel libtool-ltdl libtool-ltdl-devel expect

 

二 部署Extmail

Extmail 官方wiki 写的非常详细,所以这里连接了Extmail 官方Wiki,需要注意的是wiki文档以 CentOS-5.x-i386平台上安装,如果你我一样使用的 X86_64 的 Centos/RHEL则可能会遇到一些小问题!

 

1 extmail_solution概述

操作系统安装

制作_yum_仓库  (x86_64 请下载EMOS_1.5_x86_64.iso)

配置mta-postfix

配置courier-authlib

配置maildrop

配置Apache

配置Webmail-ExtMail

配置管理后台-ExtMan

10 配置Cyrus-SASL

11 配置Courier-IMAP

12 配置内容、病毒过滤

13 配置Spam Locker

14 配置DSpam

15 补充设置

可能会遇到的一些问题

 
  1. 0 防病毒,防垃圾邮件,64位系统请下载 相应64位rpm 包!
  2. wget http://pkgs.repoforge.org/clamav/clamav-0.97.3-1.el5.rf.x86_64.rpm
  3. wget http://pkgs.repoforge.org/clamav/clamd-0.97.3-1.el5.rf.x86_64.rpm
  4. wget http://pkgs.repoforge.org/clamav/clamav-db-0.97.3-1.el5.rf.x86_64.rpm
  5.  
  6. 调试amavisd错误,改成第二条命令即可
  7. /usr/sbin/amavisd -c /etc/amavisd.conf debug
  8. Config file "/etc/amavisd.conf" does not exist, at /usr/sbin/amavisd line 1795.
  9. /usr/sbin/amavisd -c /etc/amavisd/amavisd.conf debug
  10.  
  11. 1 maillog 日志报错 
  12. Perl version               5.008008 
  13. Dec 20 11:08:58 mail amavis[8175]: (!)Net::Server: 2011/12/20-11:08:58 Couldn't open pid file "/var/spool/vscan/var/amavisd.pid" [No such file or directory].\n\n  at line 318 in file /usr/lib/perl5/vendor_perl/5.8.8/Net/Server.pm 
  14. Dec 20 11:09:06 mail amavis[8210]: starting.  /usr/sbin/amavisd at mail.xmall.com amavisd-new-2.6.4 (20090625), Unicode aware, LC_CTYPE="en_US.UTF-8"LANG="en_US.UTF-8" 
  15.  
  16. vim /etc/amavisd/amavisd.conf 
  17. lock_file = "$MYHOME/var/amavisd.lock";  # -L 
  18. $pid_file  = "$MYHOME/var/amavisd.pid";   # -P 
  19. 改成 
  20. lock_file = "$MYHOME/amavisd.lock";  # -L 
  21. $pid_file  = "$MYHOME/amavisd.pid";   # -P 
  22.  
  23. 2 amavisd 检测不符合规定的邮件退回 
  24. vim /etc/amavisd/amavisd.conf 
  25. $final_virus_destiny      = D_REJECT
  26. $final_banned_destiny     = D_REJECT
  27.  
  28. 3 http://wiki.extmail.org/%E6%8B%BE%E8%B2%B3%E3%80%81%E9%85%8D%E7%BD%AE%E5%86%85%E5%AE%B9%E3%80%81%E7%97%85%E6%AF%92%E8%BF%87%E6%BB%A4 
  29. 5、配置Postfix 集成amavisd-new 
  30.  
  31. 增加邮件别名 
  32.  
  33. shell 
  34. # vi /etc/postfix/aliases 
  35.  
  36. 增加如下信息,注意:默认的aliases数据库里已有一条virusalert的别名,请删除,再输入下面的别名记录,并确保所有记录都是唯一的: 
  37.  
  38. virusalert:    root 
  39. spam.police:   root 
  40. postfix:       test@extmail.org 
  41.  
  42. 保存并执行newaliases命令生成新的别名数据库,重新启动amavisd:  
  43. (unknown user: "virusalert") newaliases 命令 ,别名无效 
  44.  
  45. Dec 20 15:59:31 mail postfix/local[4037]: warning: database /etc/postfix/aliases.db is older than source file /etc/postfix/aliases 
  46. Dec 20 15:59:31 mail postfix/smtp[4017]: D50708085EB: to=<zm2@xmall.com>relay=127.0.0.1[127.0.0.1]:10024, delay=7.7, delays=2.8/0/0.01/4.9, dsn=5.7.0, status=bounced (host 127.0.0.1[127.0.0.1] said: 554 5.7.0 Reject, id=03882-02 - BANNED: application/x-ms-dos-executable,.dat,test.exe (in reply to end of DATA command)) 
  47. Dec 20 15:59:31 mail postfix/local[4037]: A151F8085FC: to=<virusalert@mail.xmall.com>relay=localdelay=0.97, delays=0.9/0.03/0/0.04, dsn=5.1.1, status=bounced (unknown user: "virusalert") 
  48.  
  49. 解决方法 
  50. postalias /etc/postfix/aliases  命令即可 
  51. #virusalert 用户不再提示错误了 
  52. Dec 21 09:30:50 mail postfix/qmgr[3195]: E945D8085F0: from=<zm1@xmall.com>size=28739726nrcpt=1 (queue active) 
  53. Dec 21 09:30:50 mail postfix/smtpd[3405]: disconnect from unknown[192.168.6.150] 
  54. Dec 21 09:30:59 mail postfix/smtpd[3419]: connect from mail.xmall.com[127.0.0.1] 
  55. Dec 21 09:30:59 mail postfix/smtpd[3419]: 683D28085FD: client=mail.xmall.com[127.0.0.1] 
  56. Dec 21 09:30:59 mail postfix/cleanup[3415]: 683D28085FD: message-id=<VAdHaWpoTb2+Pl@mail.xmall.com> 
  57. Dec 21 09:30:59 mail postfix/qmgr[3195]: 683D28085FD: from=<virusalert@mail.xmall.com>size=2383nrcpt=1 (queue active) 
  58. Dec 21 09:30:59 mail amavis[3207]: (03207-01) Blocked BANNED (application/x-ms-dos-executable,.dat,test.exe), [192.168.6.150] [192.168.6.150] <zm1@xmall.com> -> <zm2@xmall.com>, quarantine: banned-dHaWpoTb2+Pl, Message-ID: <4EF1372A.4080409@xmall.com>, mail_id: dHaWpoTb2+Pl, Hits: -, size: 28739726, 9019 ms 
  59. Dec 21 09:30:59 mail postfix/cleanup[3415]: BB2758085FE: message-id=<VAdHaWpoTb2+Pl@mail.xmall.com> 
  60. Dec 21 09:30:59 mail postfix/local[3424]: 683D28085FD: to=<virusalert@mail.xmall.com>relay=localdelay=0.37, delays=0.31/0.03/0/0.03, dsn=2.0.0, status=sent (forwarded as BB2758085FE) 
  61. Dec 21 09:30:59 mail postfix/qmgr[3195]: BB2758085FE: from=<virusalert@mail.xmall.com>size=2544nrcpt=1 (queue active) 

 


三 部署Extmail后

 
  1. 1 extmail 需要设置为自动启动的服务 
  2. chkconfig courier-authlib on     
  3. chkconfig courier-imap on    
  4. chkconfig httpd on   
  5. chkconfig mysqld on          
  6. chkconfig postfix on 
  7. ————————————————————         
  8. chkconfig amavisd on  
  9. chkconfig clamd on 
  10.  
  11.  
  12. 2 关闭一些端口 
  13. 建议只保留 22 25 110 80 其它关闭,或者使用 iptables 屏蔽掉! 
  14.  
  15. dn@dn-ThinkPad-E420:~$ nmap 192.168.57.88 
  16. Starting Nmap 5.21 ( http://nmap.org ) at 2011-12-20 11:23 CST 
  17. Nmap scan report for mail.xmall.com (192.168.57.88) 
  18. Host is up (0.00076s latency). 
  19. Not shown: 990 closed ports 
  20. PORT     STATE SERVICE 
  21. 22/tcp   open  ssh 
  22. 25/tcp   open  smtp 
  23. 80/tcp   open  http 
  24. 110/tcp  open  pop3 
  25. 111/tcp  open  rpcbind 
  26. 987/tcp  open  unknown 
  27. 993/tcp  open  imaps 
  28. 995/tcp  open  pop3s 
  29. 2049/tcp open  nfs 
  30. 3306/tcp open  mysql 
  31.  
  32.  
  33. 3 为 extmail extman 升级, 
  34.  
  35. 老版本          新版本 
  36. ExtMan 1.0     ExtMan 1.1 
  37. ExtMail 1.1.0  ExtMail 1.2 
  38. 直接解开压缩包覆盖extmail,extman (做好备份)即可! 
  39. 别忘了更改属主与属组
  40. chown -R vuser:vgroup /var/www/extsuite/extmail/cgi/
    chown -R vuser:vgroup /var/www/extsuite/extman/cgi/
  41.  
  42.  
  43. 4 为 extmail 更改模版 
  44. http://www.extmail.org/docs/Extmail_Template_Intro/#C4 
  45.  
  46.  
  47. 5 extmail,extman mysql数据库安全 
  48. 将以下账户设置为 /sbin/nologin (编辑 /etc/passwd)
  49. mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash 
  50. amavis:x:102:159:AMaViS email scanner user:/var/spool/vscan:/bin/sh 
  51.  
  52. 更改extmail 默认超级管理员帐户:root@extmail.org,初始密码:extmail*123* 
  53. extman 建立一个新的域管理员帐号比如 admin 并设置复杂的密码 
  54.  
  55. mysql 数据库root 设置密码
  56. $ mysqladmin -uroot password xmall.com123
  57.  
  58. #删除mysql 空账户
  59. mysql> select user,host,password from mysql.user; 
  60. +---------+----------------+------------------+ 
  61. | user    | host           | password         | 
  62. +---------+----------------+------------------+ 
  63. | root    | localhost      | 7f61883b2dac203f |  
  64. | root    | mail.xmall.com |                  |  
  65. | root    | 127.0.0.1      |                  |  
  66. |         | localhost      |                  |  
  67. |         | mail.xmall.com |                  |  
  68. | extmail | localhost      | 2ffd2ffa7fea15e9 |  
  69. | webman  | localhost      | 1a197db46f30ed43 |  
  70. +---------+----------------+------------------+ 
  71. 7 rows in set (0.00 sec) 
  72.  
  73. delete from mysql.user where user=' ' and password=' '
  74.  
  75. #更改默认的 extmail 用户密码 
  76.  
  77. mysql> update mysql.user set password=password('xmall.com') where user='extmail'
  78. Query OK, 1 row affected (0.00 sec) 
  79. Rows matched: 1  Changed: 1  Warnings: 0 
  80. mysql> flush privileges; 
  81. Query OK, 0 rows affected (0.00 sec) 
  82.  
  83.  
  84. mysql> select user,host,password from mysql.user; 
  85. +---------+----------------+------------------+ 
  86. | user    | host           | password         | 
  87. +---------+----------------+------------------+ 
  88. | root    | localhost      | 7f61883b2dac203f |  
  89. | root    | mail.xmall.com |                  |  
  90. | root    | 127.0.0.1      |                  |  
  91. | extmail | localhost      | 50c7f90a516065c5 |  
  92. | webman  | localhost      | 1a197db46f30ed43 |  
  93. +---------+----------------+------------------+ 
  94. 5 rows in set (0.00 sec) 
  95.  
  96. #由于更改了 extmail用户的秘密,所以要变更数据库相关配置文件,密码默认为 extmail,更改为新密码 
  97.  
  98. #vim /etc/authlib/authmysqlrc  
  99. MYSQL_USERNAME          extmail 
  100. MYSQL_PASSWORD          xmall.com 
  101.  
  102.  
  103. #vim /var/www/extsuite/extmail/webmail.cf  
  104. SYS_MYSQL_USER = extmail 
  105. SYS_MYSQL_PASS = xmall.com 
  106.  
  107.  
  108. #vim /etc/postfix/mysql_virtual_alias_maps.cf 
  109. user = extmail 
  110. password = xmall.com 
  111.  
  112.  
  113. #vim /etc/postfix/mysql_virtual_domains_maps.cf 
  114. user = extmail 
  115. password = xmall.com 
  116.  
  117.  
  118. #vim /etc/postfix/mysql_virtual_mailbox_maps.cf 
  119. user = extmail 
  120. password = xmall.com 
  121.  
  122.  
  123. #vim /etc/postfix/mysql_virtual_sender_maps.cf 
  124. user = extmail 
  125. password = xmall.com 
  126.  
  127. #更改完毕,重新启动 authlib
  128. /etc/init.d/courier-authlib restart
  129.  
  130. main.cf 增加一些规则 
  131. 客户端可以在 rcpt to 命令指定同一封邮件发送给多少个收件地址 
  132. smtpd_recipient_limit (来指定smtp 投递代理可以将同一封邮件发送给多少个收件人) 
  133. postconf smtpd_recipient_limit=20(默认值1000,建议改小一些) 
  134.  
  135. 更改单封邮件大小,默认5MB 
  136. message_size_limit = 31336000 
  137.  
  138. 收到重复邮件 
  139. enable_original_recipient = no 

 

 

四 postfix main.cf 配置文档

 
  1. postconf -n 
  2. #别名数据库(postalias/newaliases 命令生成) 
  3. alias_database = hash:/etc/postfix/aliases 
  4.  
  5. #别名表,列出local mda 所使用的别名数据库 
  6. alias_maps = hash:/etc/postfix/aliases 
  7.  
  8. #退回的邮件重新投递的最长时间 
  9. bounce_queue_lifetime = 1d 
  10.  
  11. #支持非标准验证规定的行为 
  12. broken_sasl_auth_clients = yes 
  13.  
  14. #postfix命令目录 
  15. command_directory = /usr/sbin 
  16.  
  17. #postfix配置文档目录 
  18. config_directory = /etc/postfix 
  19.  
  20. #配置内容过滤 amavis 
  21. content_filter = smtp-amavis:[127.0.0.1]:10024 
  22.  
  23. #postfix 的各个服务器程序目录 
  24. daemon_directory = /usr/libexec/postfix 
  25. data_directory = /var/lib/postfix 
  26. debug_peer_level = 2 
  27.  
  28. #重复邮件 
  29. enable_original_recipient = no 
  30. html_directory = /usr/share/doc/postfix-2.6.2-documentation/html 
  31. mail_name = Postfix - welcome mail.xmall.com 
  32.  
  33. #以此参数指定的系统账户,作为队列文件的拥有者以及postfix daemon 进程的运行身份 
  34. mail_owner = postfix 
  35.  
  36. #单封邮件大小限制,单位字节 
  37. mailbox_size_limit = 150242880 
  38. mailq_path = /usr/bin/mailq.postfi 
  39.  
  40. #manpage 目录 
  41. manpage_directory = /usr/share/man 
  42.  
  43. #postfix在放弃投递而返回不可投递信息前,被延迟邮件再deferred邮件队列中的生存时间 
  44. maximal_queue_lifetime = 1d 
  45.  
  46. #限制单封邮件的最大长度,单位字节 
  47. message_size_limit = 150242880 
  48.  
  49. #设置"本地网域" 
  50. mydestination = $mynetworks $myhostname 
  51.  
  52. #完整主机名称(主机名称+网域名称) 
  53. myhostname = mail.xmall.com 
  54.  
  55. #邮件系统的网域名称 
  56. mydomain = xmall.com 
  57.  
  58. #附加到只含人名部分的,不完整邮件地址的网域名称 
  59. myorigin 
  60.  
  61. #列出可通过本邮件系统寄出邮件的网络地址或ip地址 
  62. mynetworks = 127.0.0.1 
  63.  
  64. #兼容sendmail,用于重建别名数据库的newaliases程序路径 
  65. newaliases_path = /usr/bin/newaliases.postfix 
  66.  
  67. #postfix 队列的主目录 
  68. queue_directory = /var/spool/postfix 
  69. readme_directory = /usr/share/doc/postfix-2.6.2-documentation/readme 
  70. receive_override_options = no_address_mappings 
  71.  
  72. #样本配置文件目录 
  73. sample_directory = /etc/postfix 
  74.  
  75. #供脚本或命令行用来寄送邮件 
  76. sendmail_path = /usr/sbin/sendmail.postfix 
  77.  
  78. #用来提交邮件或管理队列的组标识符 
  79. setgid_group = postdrop 
  80. show_user_unknown_table_name = no 
  81.  
  82. #smtp 问候信息 
  83. smtpd_banner = $myhostname ESMTP $mail_name 
  84.  
  85. #当客户端引发错误时,postfix 的初始等待时间 
  86. smtpd_error_sleep_time = 0s 
  87.  
  88. #收件人限制条件 
  89. smtpd_recipient_restrictions = permit_mynetworks,  permit_sasl_authenticated,  reject_non_fqdn_hostname,  reject_non_fqdn_sender,  reject_non_fqdn_recipient,  reject_unauth_destination,  reject_unauth_pipelining,  reject_invalid_hostname,  check_policy_service inet:127.0.0.1:10030 
  90.  
  91. #启动sasl 验证 
  92. smtpd_sasl_auth_enable = yes 
  93. smtpd_sasl_local_domain = $myhostname 
  94.  
  95. #指定密码验证机制(除noanonymous) 所有可用机制 
  96. smtpd_sasl_security_options = noanonymous 
  97.  
  98. #设定寄件地址与sasl登录身份的对应关系,只能使用本域地址避免使用其他寄件地址! 
  99. smtpd_sender_login_maps = mysql:/etc/postfix/mysql_virtual_sender_maps.cf,  mysql:/etc/postfix/mysql_virtual_alias_maps.cf 
  100.  
  101. #发件人限制条件 
  102. smtpd_sender_restrictions = permit_mynetworks,  reject_sender_login_mismatch,  reject_authenticated_sender_login_mismatch,  reject_unauthenticated_sender_login_mismatch 
  103.  
  104. unknown_local_recipient_reject_code = 550 
  105.  
  106. #指向含有“虚拟别名地址”与“实际收件地址”对应关系的查询表 
  107. virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf 
  108.  
  109. #虚拟网域查询表 
  110. virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf 
  111.  
  112. #虚拟邮箱查询表 
  113. virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf 
  114.  
  115. #用于投递邮件到虚拟邮箱地址的默认传输服务(虚拟mda) 
  116. virtual_transport = maildrop

 


五 维护 postfix 的命令

 
  1. newaliases  (重建别名数据库) 
  2. postalias /etc/postfix/aliases  (创建或查询别名数据库) 
  3. postcat     (显示队列文件内容) 
  4. postconf    (修改 main.cf 配置文档 ) 
  5. postqueue   (査看postfix 队列)  
  6. postsuper   (管理员管理 postfix 队列) 
  7. postmap     (创建查询表的DB数据库或查询查询表内容) 

 

结束

推荐看看 postfix权威指南,这样更有利于我们理解Extmail 各个软件之间是如何工作的!

 

update 20120918

//删除 sendmail 邮件队列中的邮件

 
  1. rm -rf  /var/spool/mqueue/* 

本文转自 dongnan 51CTO博客,原文链接:
http://blog.51cto.com/dngood/750488
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
运维 应用服务中间件 网络安全
利于群晖的File Station+SFTP实现第三方人员快速获取服务器应用日志
利于群晖的File Station+SFTP实现第三方人员快速获取服务器应用日志
77 0
|
4月前
|
SQL 监控 数据库连接
实现基于内网管理监控软件的用户身份验证系统的PHP代码详解
随着信息技术的不断发展,内网管理监控软件的需求也日益增长。为了确保系统的安全性,用户身份验证成为了至关重要的一环。本文将详细介绍如何通过PHP代码实现基于内网管理监控软件的用户身份验证系统,并提供一些代码示例。
230 0
|
弹性计算 Oracle 关系型数据库
NO.8 学会如何部署Oracle数据库、了解FTP机制、通过Squid代理上网、SSH密钥登录,最后学会故障分析,着重推荐“应用数据迁移网络异常案例分析”这篇
NO.8 本月我们首先了解一下新增的部分实用功能和如何部署Oracle数据库、了解FTP机制、通过Squid代理上网、SSH密钥登录,最后我们还是要学会故障分析,着重推荐“应用数据迁移网络异常案例分析”这篇。
2098 0
|
Web App开发 关系型数据库 Shell
《Linux命令行与shell脚本编程大全》第二十五章 创建与数据库、web及电子邮件相关的脚本
25.1 MySQL数据库 /* 但是我在虚拟机上安装的时候居然不提示输入密码。 这个可以参考http://blog.csdn.net/sinat_21302587/article/details/76870457 导致登录的时候不知道账号密码。
1679 0
|
PHP 数据库 安全
创建高安全性PHP网站的几个实用要点
大家都知道PHP已经是当前最流行的Web应用编程语言了。但是也与其他脚本语言一样,PHP也有几个很危险的安全漏洞。所以在这篇教学文章中,我们将大致看看几个实用的技巧来让你避免一些常见的PHP安全问题。
1308 0