本文将详细介绍如何使用postfix,extman,extmail等一系列开源软件构建适合企业应用的邮件系统,测试服务器平台为RHEL5.4 32位操作系统,在开始之前,请部署好LAMP环境,这方面的介绍可以参考我的另一篇文章:http://ylw6006.blog.51cto.com/470441/657907,如果要做到收发邮件均没有问题,需要DNS的邮件交换记录(MX)支持,这方面的设置不在本文中介绍…

一:安装courier-authlib

  1. 1:使用该验证库,可以使用mysql验证邮件账户
  2. [root@orcl ~]# cd /usr/local/src/tarbag
  3. [root@orcl tarbag]# wget http://sourceforge.net/projects/courier/files/authlib/0.63.0/courier-authlib-0.63.0.tar.bz2/download
  4. [root@orcl tarbag]# tar -jxvf courier-authlib-0.63.0.tar.bz2 -C ../software/
  5. [root@orcl tarbag]# cd ../software/courier-authlib-0.63.0/
  6. [root@orcl courier-authlib-0.63.0]# groupadd postfix  -g 1000
  7. [root@orcl courier-authlib-0.63.0]# groupadd vmail    -g 1001
  8. [root@orcl courier-authlib-0.63.0]# groupadd postdrop -g 1002
  9. [root@orcl courier-authlib-0.63.0]# useradd  -u 1001  -g 1000 vmail
  10. [root@orcl courier-authlib-0.63.0]# useradd  -u 1000  -g 1000 postfix
  11. [root@orcl courier-authlib-0.63.0]# id vmail
  12. uid=1001(vmail) gid=1000(postfix) groups=1000(postfix)
  13. [root@orcl courier-authlib-0.63.0]# id postfix
  14. uid=1000(postfix) gid=1000(postfix) groups=1000(postfix)
  15. [root@orcl courier-authlib-0.63.0]# ./configure    --prefix=/usr/local/courier-authlib --with-mailuser=vmail --with-mailgroup=vmail   --sysconfdir=/etc    --without-authpam    --without-authldap    --without-authpwd    --without-authshadow    --without-authvchkpw --without-authpgsql --with-authmysql    --with-mysql-libs=/usr/local/mysql/lib/mysql    --with-mysql-includes=/usr/local/mysql/include/mysql --with-redhat    --with-authmysqlrc=/etc/authmysqlrc --with-authdaemonrc=/etc/authdaemonrc    CFLAGS="-march=i686 -O2 -fexpensive-optimizations" CXXFLAGS="-march=i686 -O2 -fexpensive-optimizations"
  16. [root@orcl courier-authlib-0.63.0]# make && make install
  17. [root@orcl courier-authlib-0.63.0]# ls /usr/local/courier-authlib/
  18. bin  include  lib  libexec  sbin  share  var
  19. [root@orcl courier-authlib-0.63.0]# echo  '/usr/local/courier-authlib/lib/courier-authlib/' >> /etc/ld.so.conf
  20. [root@orcl courier-authlib-0.63.0]# ldconfig
  21. 备注:如果是64位系统,需要将i686修改位x86-64,各编译选项的含义可以使用./configrue --help来获取
  22. 2:修改authlib库相关配置文件
  23. [root@orcl ~]# cp /etc/authdaemonrc.dist /etc/authdaemonrc
  24. [root@orcl ~]# grep -v '^#' /etc/authdaemonrc |grep -v '^$'
  25. authmodulelist="authmysql"
  26. authmodulelistorig="authmysql"
  27. daemons=5
  28. authdaemonvar=/usr/local/courier-authlib/var/spool/authdaemon
  29. DEBUG_LOGIN=0
  30. DEFAULTOPTIONS=""
  31. LOGGEROPTS=""
  32. [root@orcl ~]# cp /etc/authmysqlrc.dist /etc/authmysqlrc
  33. [root@orcl ~]# grep -v '^#' /etc/authmysqlrc |grep -v '^$'
  34. MYSQL_SERVER             127.0.0.1
  35. MYSQL_USERNAME           extmail
  36. MYSQL_PASSWORD           123456
  37. MYSQL_SOCKET             /tmp/mysql.sock
  38. MYSQL_PORT               3306
  39. MYSQL_OPT                0
  40. MYSQL_DATABASE           extmail
  41. MYSQL_USER_TABLE         mailbox
  42. MYSQL_CRYPT_PWFIELD      password
  43. MYSQL_UID_FIELD          1001
  44. MYSQL_GID_FIELD          1001
  45. MYSQL_LOGIN_FIELD        username
  46. MYSQL_HOME_FIELD         concat('/email/mailbox/',homedir)
  47. MYSQL_NAME_FIELD         name
  48. MYSQL_MAILDIR_FIELD      concat('/email/mailbox/',maildir)
  49. 3:启动authlib服务
  50. [root@orcl ~]# /usr/local/courier-authlib/sbin/authdaemond start
  51. [root@orcl ~]# ps -ef |grep courier
  52. root     31874     1  0 11:35 ?        00:00:00 /usr/local/courier-authlib/sbin/courierlogger -pid=/usr/local/courier-authlib/var/spool/authdaemon/pid -start /usr/local/courier-authlib/libexec/courier-authlib/authdaemond
  53. root     31875 31874  0 11:35 ?        00:00:00 /usr/local/courier-authlib/libexec/courier-authlib/authdaemond
  54. root     31876 31875  0 11:35 ?        00:00:00 /usr/local/courier-authlib/libexec/courier-authlib/authdaemond
  55. root     31877 31875  0 11:35 ?        00:00:00 /usr/local/courier-authlib/libexec/courier-authlib/authdaemond
  56. root     31878 31875  0 11:35 ?        00:00:00 /usr/local/courier-authlib/libexec/courier-authlib/authdaemond
  57. root     31879 31875  0 11:35 ?        00:00:00 /usr/local/courier-authlib/libexec/courier-authlib/authdaemond
  58. root     31880 31875  0 11:35 ?        00:00:00 /usr/local/courier-authlib/libexec/courier-authlib/authdaemond
  59. [root@orcl ~]# echo '/usr/local/courier-authlib/sbin/authdaemond start' > /etc/rc.local

二:安装 cyrus-sasl,SASL (Simple Authentication Security Layer)简单认证安全层,功能主要是用于SMTP认证;而 Cyrus SASL是SASL的一个实现

  1. 1:卸载系统自带的sasl rpm包,使用--nodeps选项强制卸载
  2. [root@orcl ~]# rpm -qa |grep sasl
  3. cyrus-sasl-2.1.22-5.el5
  4. cyrus-sasl-devel-2.1.22-5.el5
  5. cyrus-sasl-lib-2.1.22-5.el5
  6. cyrus-sasl-plain-2.1.22-5.el5
  7. [root@orcl ~]# rpm -e $(rpm -qa |grep cyrus-sasl) --nodeps
  8. [root@orcl ~]# rpm -qa |grep sasl |wc -l
  9. 0
  10. [root@orcl ~]# cd /usr/local/src/tarbag/
  11. [root@orcl tarbag]# wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.22.tar.gz
  12. [root@orcl tarbag]# tar -zxvf cyrus-sasl-2.1.22.tar.gz -C ../software/
  13. [root@orcl tarbag]# cd ../software/cyrus-sasl-2.1.22/
  14. [root@orcl cyrus-sasl-2.1.22]# ./configure --prefix=/usr/local/sasl2 --with-mysql=/usr/local/mysql --disable-sample --disable-saslauthd --disable-pwcheck --disable-cram --disable-digest --disable-krb4 --disable-gssapi --disable-anon --enable-plain --enable-login --enable-sql --disable-ntlm --disable-otp --disable-srp --disable-srp-setpass --with-authdaemond=/usr/local/courier-authlib/var/spool/authdaemon/socket --with-mysql-includes=/usr/local/mysql/include/ --with-mysql-libs=/usr/local/mysql/lib/mysql
  15. [root@orcl cyrus-sasl-2.1.22]# make && make install
  16. [root@orcl cyrus-sasl-2.1.22]# ls /usr/local/sasl2/
  17. include  lib  man  sbin
  18. [root@orcl cyrus-sasl-2.1.22]# rm -rf /usr/lib/sasl2/
  19. [root@orcl cyrus-sasl-2.1.22]# ln -s /usr/local/sasl2/lib/sasl2/ /usr/lib
  20. [root@orcl ~]# tail -2 /etc/ld.so.conf
  21. /usr/local/sasl2/lib/sasl2
  22. /usr/local/sasl2/lib
  23. [root@orcl ~]# ldconfig
  24. 2:编辑smtpd认证配置文件,该文件默认不存在
  25. [root@orcl ~]# cat /usr/local/sasl2/lib/sasl2/smtpd.conf
  26. pwcheck_method: authdaemond
  27. log_level: 3
  28. mech_list: PLAIN LOGIN
  29. authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket
  30. 3:创建相关目录并启动测试
  31. [root@orcl ~]# mkdir -p /var/state/saslauthd
  32. [root@orcl ~]# /usr/local/sasl2/sbin/saslauthd -a shadow pam -d
  33. saslauthd[10252] :main            : num_procs  : 5
  34. saslauthd[10252] :main            : mech_option: NULL
  35. saslauthd[10252] :main            : run_path   : /var/state/saslauthd
  36. saslauthd[10252] :main            : auth_mech  : shadow
  37. saslauthd[10252] :ipc_init        : using accept lock file: /var/state/saslauthd/mux.accept
  38. saslauthd[10252] :detach_tty      : master pid is: 0
  39. saslauthd[10252] :ipc_init        : listening on socket: /var/state/saslauthd/mux
  40. saslauthd[10252] :main            : using process model
  41. saslauthd[10253] :get_accept_lock : acquired accept lock
  42. saslauthd[10252] :have_baby       : forked child: 10253
  43. saslauthd[10252] :have_baby       : forked child: 10254
  44. saslauthd[10252] :have_baby       : forked child: 10255
  45. saslauthd[10252] :have_baby       : forked child: 10256
  46. saslauthd[10256] :server_exit     : child exited: 10256
  47. saslauthd[10255] :server_exit     : child exited: 10255
  48. saslauthd[10254] :server_exit     : child exited: 10254
  49. saslauthd[10253] :server_exit     : child exited: 10253
  50. saslauthd[10252] :handle_sigchld  : child exited: 10253
  51. saslauthd[10252] :handle_sigchld  : child exited: 10254
  52. saslauthd[10252] :handle_sigchld  : child exited: 10255
  53. saslauthd[10252] :handle_sigchld  : child exited: 10256
  54. 此处按"ctrl+C"
  55. saslauthd[10252] :server_exit     : pid file lock removed: /var/state/saslauthd/saslauthd.pid.lock
  56. saslauthd[10252] :ipc_cleanup     : accept lock file removed: /var/state/saslauthd/mux.accept
  57. saslauthd[10252] :ipc_cleanup     : socket removed: /var/state/saslauthd/mux
  58. saslauthd[10252] :server_exit     : master exited: 0
  59. [root@orcl ~]# /usr/local/sasl2/sbin/saslauthd -a shadow pam -d &
  60. [1] 30341
  61. [root@orcl ~]# exit
  62. logout
  63. [root@orcl ~]# ps -ef |grep sasl
  64. root     30341     1  0 11:19 ?        00:00:00 /usr/local/sasl2/sbin/saslauthd -a shadow pam -d
  65. root     30342 30341  0 11:19 ?        00:00:00 /usr/local/sasl2/sbin/saslauthd -a shadow pam -d
  66. root     30343 30341  0 11:19 ?        00:00:00 /usr/local/sasl2/sbin/saslauthd -a shadow pam -d
  67. root     30344 30341  0 11:19 ?        00:00:00 /usr/local/sasl2/sbin/saslauthd -a shadow pam -d
  68. root     30345 30341  0 11:19 ?        00:00:00 /usr/local/sasl2/sbin/saslauthd -a shadow pam -d
  69. [root@orcl ~]# echo '/usr/local/sasl2/sbin/saslauthd -a shadow pam -d' >> /etc/rc.local

三:安装BerkeleyDB

  1. 1:卸载系统自带的db4 rpm包,使用--nodeps选项强制卸载
  2. [root@orcl ~]# rpm -qa |grep db4
  3. db4-4.3.29-10.el5
  4. db4-devel-4.3.29-10.el5
  5. [root@orcl ~]# rpm -e $(rpm -qa |grep db4) --nodeps
  6. [root@orcl ~]# rpm -qa |grep db4 |wc -l
  7. 0
  8. [root@orcl ~]# cd /usr/local/src/tarbag/
  9. [root@orcl tarbag]# wget http://download.oracle.com/berkeley-db/db-4.8.26.tar.gz
  10. [root@orcl tarbag]# tar -zxvf db-4.8.26.tar.gz -C ../software/
  11. [root@orcl tarbag]# cd ../software/db-4.8.26/build_unix/
  12. [root@orcl build_unix]# ../dist/configure --prefix=/usr/local/BerkeleyDB
  13. [root@orcl build_unix]# make && make install
  14. [root@orcl build_unix]# ls /usr/local/BerkeleyDB/
  15. bin  docs  include  lib
  16. [root@orcl ~]# ln -s /usr/local/BerkeleyDB/include  /usr/include/db4
  17. [root@orcl ~]# ln -s /usr/local/BerkeleyDB/include/db.h /usr/include/
  18. [root@orcl ~]# ln -s /usr/local/BerkeleyDB/include/db_cxx.h /usr/include/
  19. [root@orcl ~]# echo '/usr/local/BerkeleyDB/lib' >> /etc/ld.so.conf
  20. [root@orcl ~]# ldconfig

四:安装postfix

  1. 1:关闭sendmail
  2. [root@orcl ~]# service sendmail stop
  3. Shutting down sm-client: [  OK  ]
  4. Shutting down sendmail: [  OK  ]
  5. [root@orcl ~]# chkconfig sendmail off
  6. 2:下载postfix源码包并编译安装
  7. [root@orcl ~]# echo '/usr/local/mysql/lib/mysql/' >> /etc/ld.so.conf
  8. [root@orcl ~]# ldconfig
  9. [root@orcl ~]# cd /usr/local/src/tarbag/
  10. [root@orcl tarbag]# wget ftp://ftp.cuhk.edu.hk/pub/packages/mail-server/postfix/official/postfix-2.8.0.tar.gz
  11. [root@orcl tarbag]# wget http://vda.sourceforge.net/VDA/postfix-vda-2.8.0.patch  //支持磁盘配额的补丁
  12. [root@orcl tarbag]# tar -zxvf postfix-2.8.0.tar.gz -C ../software/
  13. [root@orcl tarbag]# mv postfix-vda-2.8.0.patch ../software/postfix-2.8.0/
  14. [root@orcl tarbag]# cd ../software/postfix-2.8.0/
  15. [root@orcl postfix-2.8.0]# make clean
  16. [root@orcl postfix-2.8.0]# make tidy
  17. [root@orcl postfix-2.8.0]# patch -p1 < postfix-vda-2.8.0.patch
  18. patching file README_FILES/VDA_README
  19. patching file src/global/mail_params.h
  20. patching file src/util/file_limit.c
  21. patching file src/virtual/mailbox.c
  22. patching file src/virtual/maildir.c
  23. patching file src/virtual/virtual.c
  24. patching file src/virtual/virtual.h
  25. [root@orcl postfix-2.8.0]# make -f Makefile.init Makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/sasl2/include/sasl' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/local/sasl2/lib   -lsasl2 -L/usr/local/BerkeleyDB/lib'
  26. [root@orcl postfix-2.8.0]# make && make install
  27. Please specify the prefix for installed file names. Specify this ONLY
  28. if you are building ready-to-install packages for distribution to other
  29. machines.
  30. install_root: [/]
  31. Please specify a directory for scratch files while installing Postfix. You
  32. must have write permission in this directory.
  33. tempdir: [/usr/local/src/software/postfix-2.8.0]
  34. Please specify the final destination directory for installed Postfix
  35. configuration files.
  36. config_directory: [/etc/postfix] /usr/local/postfix/etc
  37. Please specify the final destination directory for installed Postfix
  38. administrative commands. This directory should be in the command search
  39. path of adminstrative users.
  40. command_directory: [/usr/sbin] /usr/local/postfix/sbin
  41. Please specify the final destination directory for installed Postfix
  42. daemon programs. This directory should not be in the command search path
  43. of any users.
  44. daemon_directory: [/usr/libexec/postfix] /usr/local/postfix/libexec
  45. Please specify the final destination directory for Postfix-writable
  46. data files such as caches or random numbers. This directory should not
  47. be shared with non-Postfix software.
  48. data_directory: [/var/lib/postfix] /usr/local/postfix/var/lib
  49. Please specify the destination directory for the Postfix HTML
  50. files. Specify "no" if you do not want to install these files.
  51. html_directory: [no]
  52. Please specify the owner of the Postfix queue. Specify an account with
  53. numerical user ID and group ID values that are not used by any other
  54. accounts on the system.
  55. mail_owner: [postfix]
  56. Please specify the final destination pathname for the installed Postfix
  57. mailq command. This is the Sendmail-compatible mail queue listing command.
  58. mailq_path: [/usr/bin/mailq]
  59. Please specify the destination directory for the Postfix on-line manual
  60. pages. You can no longer specify "no" here.
  61. manpage_directory: [/usr/local/man] /usr/local/postfix/man
  62. Please specify the final destination pathname for the installed Postfix
  63. newaliases command. This is the Sendmail-compatible command to build
  64. alias databases for the Postfix local delivery agent.
  65. newaliases_path: [/usr/bin/newaliases]
  66. Please specify the final destination directory for Postfix queues.
  67. queue_directory: [/var/spool/postfix] /usr/local/postfix/var/spool
  68. Please specify the destination directory for the Postfix README
  69. files. Specify "no" if you do not want to install these files.
  70. readme_directory: [no]
  71. Please specify the final destination pathname for the installed Postfix
  72. sendmail command. This is the Sendmail-compatible mail posting interface.
  73. sendmail_path: [/usr/sbin/sendmail]
  74. Please specify the group for mail submission and for queue management
  75. commands. Specify a group name with a numerical group ID that is
  76. not shared with other accounts, not even with the Postfix mail_owner
  77. account. You can no longer specify "no" here.
  78. setgid_group: [postdrop]
  79. 编译最后报错如下,找不到/etc/postfix/main.cf,后面通过软链接解决,这里直接无视!
  80. postfix: fatal: open /etc/postfix/main.cf: No such file or directory
  81. make: *** [install] Error 1
  82. 3:验证postfix是否支持sasl和mysql
  83. [root@orcl postfix-2.8.0]# ls /usr/local/postfix/
  84. etc  libexec  man  sbin  var
  85. [root@orcl postfix-2.8.0]# ls /usr/local/postfix/etc/
  86. access             canonical      LICENSE          makedefs.out  TLS_LICENSE
  87. aliases            generic        main.cf          master.cf     transport
  88. bounce.cf.default  header_checks  main.cf.default  relocated     virtual
  89. [root@orcl ~]# mv /etc/aliases /tmp/aliases.old
  90. [root@orcl ~]# ln -s /usr/local/postfix/etc/aliases /etc/
  91. [root@orcl ~]# /usr/bin/newaliases
  92. newaliases: fatal: open /etc/postfix/main.cf: No such file or directory
  93. [root@orcl ~]# ln -s /usr/local/postfix/etc/main.cf /etc/po
  94. [root@orcl ~]# mkdir /etc/postfix
  95. [root@orcl ~]# ln -s /usr/local/postfix/etc/main.cf /etc/postfix/
  96. [root@orcl ~]# /usr/bin/newaliases
  97. [root@orcl ~]# /usr/local/postfix/sbin/postconf -a
  98. cyrus
  99. dovecot
  100. [root@orcl ~]# /usr/local/postfix/sbin/postconf -m |grep mysql
  101. mysql
  102. 4.配置并启动postfix
  103. [root@orcl ~]# cp /usr/local/postfix/etc/main.cf /usr/local/postfix/etc/main.cf.orig
  104. [root@orcl ~]# cat /etc/postfix/main.cf
  105. ##====================MAIN========================
  106. myhostname = mail.yang.com
  107. mydomain = yang.com
  108. myorigin = $mydomain
  109. mydestination =
  110. inet_interfaces = all
  111. mynetworks = 192.168.227.0/24,192.168.123.0/24,127.0.0.0/8
  112. alias_maps =        hash:/etc/aliases
  113. alias_database =        hash:/etc/aliases
  114. queue_directory =   /usr/local/postfix/var/spool
  115. command_directory = /usr/local/postfix/sbin
  116. daemon_directory =  /usr/local/postfix/libexec
  117. sendmail_path =     /usr/sbin/sendmail
  118. newaliases_path =   /usr/bin/newaliases
  119. mailq_path =        /usr/bin/mailq
  120. setgid_group =      postdrop
  121. html_directory =    no
  122. manpage_directory = /usr/local/postfix/man
  123. sample_directory =  /usr/local/postfix/etc/
  124. readme_directory =  no
  125. unknown_local_recipient_reject_code = 550
  126. ##====================SASL========================
  127. broken_sasl_auth_clients = yes
  128. smtpd_recipient_restrictions =  permit_mynetworks,
  129. permit_sasl_authenticated,
  130. reject_invalid_hostname,
  131. reject_non_fqdn_hostname,
  132. reject_unknown_sender_domain,
  133. reject_non_fqdn_sender,
  134. reject_non_fqdn_recipient,
  135. reject_unknown_recipient_domain,
  136. reject_unauth_pipelining,
  137. reject_unauth_destination,
  138. permit
  139. smtpd_sasl_auth_enable = yes
  140. smtpd_sasl_local_domain = $myhostname
  141. smtpd_sasl_security_options = noanonymous
  142. smtpdsmtpd_sasl_application_name = smtpd
  143. smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
  144. ##================ Virtual Mailbox Settings =====================#
  145. virtual_mailbox_base = /email/mailbox
  146. virtual_mailbox_maps = mysql:/usr/local/postfix/etc/mysql_virtual_mailbox_maps.cf
  147. virtual_mailbox_domains = mysql:/usr/local/postfix/etc/mysql_virtual_domains_maps.cf
  148. virtual_alias_domains = virtual_alias_maps = mysql:/usr/local/postfix/etc/mysql_virtual_alias_maps.cf
  149. virtual_uid_maps = static:1001
  150. virtual_gid_maps = static:1001
  151. virtual_transport = maildrop
  152. maildrop_destination_recipient_limit = 1
  153. maildrop_destination_concurrency_limit = 1
  154. message_size_limit = 14336000
  155. virtual_mailbox_limit = 20971520
  156. virtual_create_maildirsize = yes
  157. virtual_mailbox_extended = yes
  158. virtual_mailbox_limit_maps = mysql:/usr/local/postfix/etc/mysql_virtual_mailbox_limit_maps.cf
  159. virtual_mailbox_limit_override = yes
  160. virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please Tidy your mailbox and try again later.
  161. virtual_overquota_bounce = yes
  162. [root@orcl ~]# cat /usr/local/postfix/etc/mysql_virtual_domains_maps.cf
  163. user = extmail
  164. password = 123456
  165. hosts = localhost
  166. dbname = extmail
  167. table = domain
  168. select_field = description
  169. where_field = domain
  170. additional_conditions = AND active = '1'
  171. [root@orcl ~]# cat /usr/local/postfix/etc/mysql_virtual_mailbox_maps.cf
  172. user = extmail
  173. password = 123456
  174. hosts = localhost
  175. dbname = extmail
  176. table = mailbox
  177. select_field = maildir
  178. where_field = username
  179. additional_conditions = AND active = '1'
  180. [root@orcl ~]# cat /usr/local/postfix/etc/mysql_virtual_alias_maps.cf
  181. user = extmail
  182. password =  123456
  183. hosts = localhost
  184. dbname = extmail
  185. table = alias
  186. select_field = goto
  187. where_field = address
  188. additional_conditions = AND active = '1'
  189. [root@orcl ~]# cat /usr/local/postfix/etc/mysql_virtual_limit_maps.cf
  190. user = extmail
  191. password =  123456
  192. hosts = localhost
  193. dbname = extmail
  194. table = mailbox
  195. select_field = quota
  196. where_field = username
  197. additional_conditions = AND active = '1'
  198. [root@orcl ~]# /usr/local/postfix/sbin/postfix  start
  199. postfix/postfix-script: fatal: no /etc/postfix/master.cf file found
  200. postfix/postfix-script: fatal: Postfix integrity check failed!
  201. [root@orcl ~]# ll /etc/postfix/main.cf
  202. [root@orcl ~]# ln -s /usr/local/postfix/etc/master.cf /etc/postfix/
  203. [root@orcl ~]# /usr/local/postfix/sbin/postfix  start
  204. postfix/postfix-script: starting the Postfix mail system
  205. [root@orcl ~]# netstat -ntpl |grep :25
  206. tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      22089/master

五.安装Courier-IMAP

  1. [root@orcl ~]# cd /usr/local/src/tarbag/
  2. [root@orcl tarbag]# wget http://sourceforge.net/projects/courier/files/imap/4.9.3/courier-imap-4.9.3.tar.bz2/download
  3. [root@orcl tarbag]# tar -jxvf courier-imap-4.9.3.tar.bz2 -C ../software/
  4. [root@orcl tarbag]# cd ../software/courier-imap-4.9.3/
  5. [root@orcl courier-imap-4.9.3]# ./configure --prefix=/usr/local/courier-imap --with-redhat --enable-unicode --disable-root-check --with-trashquota --without-ipv6 CPPFLAGS='-I/usr/local/courier-authlib/include' COURIERAUTHCONFIG='/usr/local/courier-authlib/bin/courierauthconfig'
  6. [root@orcl courier-imap-4.9.3]# make && make install
  7. [root@orcl courier-imap-4.9.3]# cd /usr/local/courier-imap/etc
  8. [root@orcl etc]# cp imapd.dist  imapd
  9. [root@orcl etc]# cp pop3d.dist pop3d
  10. [root@orcl etc]# cp imapd-ssl.dist  imapd-ssl
  11. [root@orcl etc]# cp pop3d-ssl.dist pop3d-ssl
  12. [root@orcl etc]# egrep -i 'path|start' pop3d |grep -v '^#'
  13. POP3DSTART=YES
  14. MAILDIRPATH=/opt/mailbox
  15. [root@orcl etc]# egrep -i 'path|start' imapd |grep -v '^#'
  16. IMAPDSTART=YES
  17. MAILDIRPATH=/opt/mailbox
  18. [root@orcl etc]# cp /usr/local/src/software/courier-imap-4.9.3/courier-imap.sysvinit /etc/init.d/imapd
  19. [root@orcl etc]# chmod +x /etc/init.d/imapd
  20. [root@orcl etc]# chkconfig --add imapd
  21. [root@orcl etc]# service imapd start
  22. Starting Courier-IMAP server: imap pop3
  23. [root@orcl etc]# netstat -ntpl |egrep '110|143'
  24. tcp        0      0 0.0.0.0:110                 0.0.0.0:*                   LISTEN      14416/couriertcpd
  25. tcp        0      0 0.0.0.0:143                 0.0.0.0:*                   LISTEN      14410/couriertcpd

六: 安装maildrop

  1. [root@orcl etc]# cd /usr/local/src/tarbag/
  2. [root@orcl tarbag]# wget http://nchc.dl.sourceforge.net/project/courier/maildrop/2.5.4/maildrop-2.5.4.tar.bz2
  3. [root@orcl tarbag]# yum -y install pcre-devel
  4. [root@orcl tarbag]# tar -jxvf maildrop-2.5.4.tar.bz2 -C ../software/
  5. [root@orcl maildrop-2.5.4]# ./configure --enable-sendmail=/usr/sbin/sendmail  --enable-trusted-users='root vmail' --enable-syslog=1 --enable-maildirquota  --enable-maildrop-uid=1001  --enable-maildrop-gid=1001 --with-trashquota --with-dirsync
  6. [root@orcl maildrop-2.5.4]# make && make install
  7. [root@orcl maildrop-2.5.4]# maildrop -v
  8. maildrop 2.5.4 Copyright 1998-2005 Double Precision, Inc.
  9. GDBM/DB extensions enabled.
  10. Maildir quota extension are now always enabled.
  11. This program is distributed under the terms of the GNU General Public
  12. License. See COPYING for additional information.
  13. [root@orcl maildrop-2.5.4]# cat /etc/maildroprc  //该文件默认不存在
  14. logfile "/var/log/maildrop.log"
  15. [root@orcl maildrop-2.5.4]# touch /var/log/maildrop.log
  16. [root@orcl maildrop-2.5.4]# chown vmail.vmail /var/log/maildrop.log
  17. 配置postfix支持maildrop
  18. [root@orcl ~]# grep -2 -i 'maildrop' /etc/postfix/master.cf  |grep -v '^#'
  19. maildrop  unix  -       n       n       -       -       pipe
  20. flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
  21. [root@orcl ~]# egrep '1001|maildrop' /etc/postfix/main.cf
  22. virtual_transport = maildrop
  23. virtual_uid_maps = static:1001
  24. virtual_gid_maps = static:1001

七:配置extman和extmail等

  1. 1:配置extman
  2. [root@orcl ~]# mkdir -p /email/mailbox
  3. [root@orcl ~]# chown -R vmail.vmail /email/mailbox/
  4. [root@orcl ~]# chown -R vmail.vmail /email/mailbox/
  5. [root@orcl tarbag]# tar -zxvf extman-1.1.tar.gz -C ../software/
  6. [root@orcl tarbag]# mv ../software/extman-1.1/ /www/extman
  7. [root@orcl tarbag]# mv /www/extman/webman.cf.default /opt/extman/webman.cf
  8. [root@orcl ~]# grep -v '^#' /www/extman/webman.cf  |grep -v '^$'
  9. SYS_CONFIG = /www/extman/
  10. SYS_LANGDIR = /www/extman/lang
  11. SYS_TEMPLDIR = /www/extman/html
  12. SYS_MAILDIR_BASE = /email/mailbox
  13. SYS_SHOW_WARN = 0
  14. SYS_SESS_DIR = /tmp/extman/
  15. SYS_APP_TYPE = ExtMan
  16. SYS_TEMPLATE_NAME = default
  17. SYS_DEFAULT_EXPIRE = 1y
  18. SYS_GROUPMAIL_SENDER = postmaster@extmail.org
  19. SYS_DEFAULT_SERVICES = webmail,smtpd,smtp,pop3,netdisk
  20. SYS_BACKEND_TYPE = mysql
  21. SYS_CRYPT_TYPE = md5crypt
  22. SYS_MYSQL_USER = extmail
  23. SYS_MYSQL_PASS = 123456
  24. SYS_MYSQL_DB =   extmail
  25. SYS_MYSQL_HOST = localhost
  26. SYS_MYSQL_SOCKET = /tmp/mysql.sock
  27. SYS_MYSQL_TABLE = manager
  28. SYS_MYSQL_ATTR_USERNAME = username
  29. SYS_MYSQL_ATTR_PASSWD = password
  30. SYS_LDAP_BASE = dc=extmail.org
  31. SYS_LDAP_RDN = cn=Manager,dc=extmail.org
  32. SYS_LDAP_PASS = secret
  33. SYS_LDAP_HOST = localhost
  34. SYS_LDAP_ATTR_USERNAME = mail
  35. SYS_LDAP_ATTR_PASSWD = userPassword
  36. [root@orcl tarbag]# mkdir /tmp/extman
  37. [root@orcl tarbag]# chown vmail.vmail /www/extman/
  38. [root@orcl tarbag]# chown vmail.vmail /tmp/extman/
  39. 2:配置extmail
  40. [root@orcl tarbag]# tar -zxvf extmail-1.2.tar.gz -C /www/
  41. [root@orcl tarbag]# mv /www/extmail-1.2/ /www/extmail
  42. [root@orcl ~]# cp /www/extmail/webmail.cf.default /www/extmail/webmail.cf
  43. [root@orcl ~]# grep -v '^#' /www/extmail/webmail.cf |grep -v '^$'
  44. SYS_CONFIG = /www/extmail/
  45. SYS_LANGDIR = /www/extmail/lang
  46. SYS_TEMPLDIR = /www/extmail/html
  47. SYS_HTTP_CACHE = 0
  48. SYS_SMTP_HOST = 127.0.0.1
  49. SYS_SMTP_PORT = 25
  50. SYS_LOG_FILE = /var/log/extmail.log
  51. SYS_SESS_TIMEOUT = 0
  52. SYS_SESS_COOKIE_ONLY = 1
  53. SYS_USER_PSIZE = 10
  54. SYS_USER_SCREEN = auto
  55. SYS_USER_LANG = en_US
  56. SYS_APP_TYPE = WebMail
  57. SYS_USER_TEMPLATE = default
  58. SYS_USER_CHARSET = utf-8
  59. SYS_AUTH_TYPE = mysql
  60. SYS_MAILDIR_BASE = /email/mailbox
  61. SYS_AUTH_SCHEMA = virtual
  62. SYS_CRYPT_TYPE = md5crypt
  63. SYS_MYSQL_USER = extmail
  64. SYS_MYSQL_PASS = 123456
  65. SYS_MYSQL_DB = extmail
  66. SYS_MYSQL_HOST = localhost
  67. SYS_MYSQL_SOCKET = /tmp/mysql.sock
  68. SYS_MYSQL_TABLE = mailbox
  69. SYS_MYSQL_ATTR_USERNAME = username
  70. SYS_MYSQL_ATTR_DOMAIN = domain
  71. SYS_MYSQL_ATTR_PASSWD = password
  72. SYS_MYSQL_ATTR_CLEARPW = clearpwd
  73. [root@orcl ~]# chown -R vmail.vmail /www/extmail/
  74. 3:导入数据库文件:
  75. [root@orcl ~]# cd /www/extman/docs/
  76. [root@orcl docs]# /usr/local/mysql/bin/mysql -u root -p < extmail.sql
  77. Enter password:
  78. [root@orcl docs]# /usr/local/mysql/bin/mysql -u root -p < init.sql
  79. Enter password:
  80. root@orcl docs]# /usr/local/mysql/bin/mysql
  81. Welcome to the MySQL monitor.  Commands end with ; or \g.
  82. Your MySQL connection id is 4
  83. Server version: 5.1.36-log Source distribution
  84. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  85. mysql> show databases;
  86. +--------------------+
  87. | Database           |
  88. +--------------------+
  89. | information_schema |
  90. | aclocal            |
  91. | extmail            |
  92. | mysql              |
  93. | test               |
  94. +--------------------+
  95. 5 rows in set (0.04 sec)
  96. mysql> use extmail;
  97. Database changed
  98. mysql> show tables;
  99. +-------------------+
  100. | Tables_in_extmail |
  101. +-------------------+
  102. | alias             |
  103. | domain            |
  104. | domain_manager    |
  105. | mailbox           |
  106. | manager           |
  107. +-------------------+
  108. 5 rows in set (0.01 sec)
  109. mysql> grant all privileges on extmail.* to extmail@'localhost' identified by '123456';
  110. Query OK, 0 rows affected (0.00 sec)
  111. mysql> flush privileges;
  112. Query OK, 0 rows affected (0.00 sec)
  113. 4:配置slockd
  114. [root@orcl ~]# cd /usr/local/src/tarbag/
  115. [root@orcl tarbag]# tar -zxvf slockd-0.99.tar.gz -C /usr/local/
  116. [root@orcl tarbag]# /usr/local/slockd/slockd-init start
  117. Starting spam locker daemon: slockd
  118. [root@orcl tarbag]# echo '/usr/local/slockd/slockd-init start' >> /etc/rc.local
  119. [root@orcl tarbag]# cd /var/run/
  120. [root@orcl run]# mkdir extmail
  121. [root@orcl run]# /www/extman/daemon/cmdserver -v -d
  122. loaded ok
  123. [root@orcl run]# echo '/www/extman/daemon/cmdserver -v -d' >> /etc/rc.local

八:配置apache

  1. [root@orcl ~]# grep 'vmail' /usr/local/apache2.2.16/conf/httpd.conf
  2. User  vmail
  3. Group vmail
  4. <VirtualHost *:80>
  5. ServerName   mail.yang.com   
  6. DocumentRoot /www/extmail/html
  7. ScriptAlias  /extmail/cgi     /www/extmail/cgi
  8. Alias        /extmail         /www/extmail/html
  9. ScriptAlias  /extman/cgi      /www/extman/cgi
  10. Alias        /extman          /www/extman/html
  11. <Directory /www>
  12. Authtype basic
  13. Options execcgi
  14. Options Indexes FollowSymLinks
  15. AllowOverride None
  16. Order allow,deny
  17. Allow from all
  18. </Directory>
  19. </VirtualHost>
  20. [root@orcl ~]# /usr/local/apache2.2.16/bin/apachectl -t
  21. Syntax OK
  22. [root@orcl ~]# /usr/local/apache2.2.16/bin/apachectl -k restart

九:测试和排错, extman默认管理帐号为:root@extmail.org   密码为:extmail*123*

  1. 1:安装GD,若未安装,则会出现验证码无法正常显示
  2. [root@orcl ~]# cd /usr/local/src/tarbag/
  3. [root@orcl tarbag]# tar -zxvf GD-2.35.tar.gz -C ../software/
  4. [root@orcl tarbag]# cd ../software/GD-2.35/
  5. [root@orcl GD-2.35]# perl Makefile.PL
  6. [root@orcl GD-2.35]# make && make install

2:出现下图中的情况,需要重新安装前面卸载掉的db4和db4-devel 
[root@orcl ~]# yum -y install db4 db4-devel

3:出现下图中的情况,需要安装UNix-syslog

  1. [root@orcl ~]# cd /usr/local/src/tarbag/
  2. [root@orcl tarbag]# gzip -d Unix-Syslog-1.1.tar.gz
  3. [root@orcl tarbag]# tar -xvf Unix-Syslog-1.1.tar -C ../software/
  4. [root@orcl tarbag]# cd ../software/Unix-Syslog-1.1/
  5. [root@orcl Unix-Syslog-1.1]# ls
  6. Artistic  Changes  Makefile.PL  MANIFEST  META.yml  README  Syslog.pm  Syslog.xs  test.pl
  7. [root@orcl Unix-Syslog-1.1]# perl Makefile.PL
  8. Checking if your kit is complete...
  9. Looks good
  10. Writing Makefile for Unix::Syslog
  11. [root@orcl Unix-Syslog-1.1]# make && make install

4:新建邮件域,登陆出错

安装perl-DBD-MySQL后重新登陆
[root@orcl ~]# yum -y install perl-DBD-MySQL

5: 发信测试

  1. [root@orcl ~]# tail -f /var/log/maillog
  2. Sep  5 16:05:31 orcl extmail[12523]: user=<admin@yang.com>, client=192.168.227.1, module=login, status=loginok
  3. Sep  5 16:06:29 orcl postfix/smtpd[12555]: connect from localhost.localdomain[127.0.0.1]
  4. Sep  5 16:06:29 orcl postfix/smtpd[12555]: B842123EFB4: client=localhost.localdomain[127.0.0.1]
  5. Sep  5 16:06:29 orcl postfix/cleanup[12560]: B842123EFB4: message-id=<20110905080629.B842123EFB4@mail.yang.com>
  6. Sep  5 16:06:29 orcl postfix/smtpd[12555]: disconnect from localhost.localdomain[127.0.0.1]
  7. Sep  5 16:06:29 orcl postfix/qmgr[12286]: B842123EFB4: from=<admin@yang.com>, size=615, nrcpt=1 (queue active)
  8. Sep  5 16:06:31 orcl postfix/smtp[12561]: B842123EFB4: to=<ylw6006@163.com>, relay=163mx03.mxmail.netease.com[123.125.50.140]:25, delay=2.2, delays=0.07/0/1.2/0.94, dsn=2.0.0, status=sent (250 Mail OK queued as mx47,XcCowGBps0bRgmROKP+GAw--.907S2 1315209938)
  9. Sep  5 16:06:32 orcl postfix/qmgr[12286]: B842123EFB4: removed

6:extman日志分析

  1. [root@orcl ~]# cd /usr/local/src/tarbag/
  2. [root@orcl tarbag]# wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz
  3. [root@orcl tarbag]# tar -zxvf rrdtool-1.4.5.tar.gz -C ../software/
  4. [root@orcl tarbag]# cd ../software/rrdtool-1.4.5/
  5. [root@orcl rrdtool-1.4.5]# ./configure --prefix=/usr/local/rrdtool
  6. [root@orcl rrdtool-1.4.5]# make && make install
  7. [root@orcl ~]# ln -s /usr/local/rrdtool/lib/perl/5.8.8/i386-linux-thread-multi/auto/RRDs/RRDs.so /usr/lib/perl5/5.8.8/i386-linux-thread-multi/
  8. [root@orcl ~]# ln -s /usr/local/rrdtool/lib/perl/5.8.8/RRDp.pm /usr/lib/perl5/5.8.8/
  9. [root@orcl ~]# ln -s /usr/local/rrdtool/lib/perl/5.8.8/i386-linux-thread-multi/RRDs.pm /usr/lib/perl5/5.8.8/
  10. [root@orcl ~]# cp -r /www/extman/addon/mailgraph_ext/ /usr/local/
  11. [root@orcl ~]# /usr/local/mailgraph_ext/mailgraph-init start
  12. Starting mail statistics grapher: mailgraph_ext
  13. Can't locate File/Tail.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/local/mailgraph_ext/mailgraph_ext.pl line 296.
  14. BEGIN failed--compilation aborted at /usr/local/mailgraph_ext/mailgraph_ext.pl line 296.
  15. Starting queue statistics grapher: qmonitor
  16. [root@orcl ~]# cpan
  17. cpan> install File::Tail
  18. cpan>quit
  19. [root@orcl ~]# /usr/local/mailgraph_ext/mailgraph-init start
  20. Starting mail statistics grapher: mailgraph_ext
  21. Starting queue statistics grapher: qmonitor
  22. [root@orcl ~]# echo '/usr/local/mailgraph_ext/mailgraph-init start' >> /etc/rc.local

十:增加FCGI支持,主要是为了获得优异的web效能

1:安装mod_fastcgi模块

  1. [root@orcl ~]# cd /usr/local/src/tarbag/
  2. [root@orcl tarbag]# wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
  3. [root@orcl tarbag]# tar -zxvf mod_fastcgi-2.4.6.tar.gz -C ../software/
  4. [root@orcl tarbag]# cd ../software/mod_fastcgi-2.4.6/
  5. [root@orcl mod_fastcgi-2.4.6]# cp Makefile.AP2 Makefile
  6. [root@orcl mod_fastcgi-2.4.6]# make top_dir=/usr/local/apache2.2.16/ install
  7. [root@orcl mod_fastcgi-2.4.6]# ls /usr/local/apache2.2.16/modules/mod_fastcgi.so
  8. /usr/local/apache2.2.16/modules/mod_fastcgi.so

2:安装perl-FCGI模块,使extmail支持fastcgi

  1. [root@orcl ~]# rpm -ivh http://ftp.belnet.be/packages/dries.ulyssis.org/redhat/el5/en/i386/RPMS.dries/perl-FCGI-0.67-1.2.el5.rf.i386.rpm //32位系统
  2. [root@orcl ~]# rpm -ivh http://ftp.belnet.be/packages/dries.ulyssis.org/redhat/el5/en/x86_64/RPMS.dries/perl-FCGI-0.67-1.2.el5.rf.x86_64.rpm //64位系统

3:配置apache,extmail支持fastcgi

  1. [root@orcl ~]# egrep 'fast|9000' /usr/local/apache2.2.16/conf/httpd.conf
  2. LoadModule fastcgi_module        modules/mod_fastcgi.so
  3. <Ifmodule mod_fastcgi.c>
  4. FastCgiExternalServer /var/www/extsuite/extmail/dispatch.fcgi -host 127.0.0.1:8888
  5. </Ifmodule>
  6. [root@orcl ~]# vi /usr/local/apache2.2.16/conf/extra/httpd-vhosts.conf
  7. <VirtualHost *:80>
  8. ServerName   mail.yang.com   
  9. DocumentRoot /www/extmail/html
  10. ScriptAlias  /extmail/cgi     /www/extmail/dispatch.fcgi
  11. Alias        /extmail         /www/extmail/html
  12. ScriptAlias  /extman/cgi      /www/extmail/dispatch.fcgi
  13. Alias        /extman          /www/extman/html
  14. <Location "/extman/cgi">
  15. SetHandler fastcgi-script
  16. </Location>
  17. <Directory /www>
  18. Authtype basic
  19. Options execcgi
  20. Options Indexes FollowSymLinks
  21. AllowOverride None
  22. Order allow,deny
  23. Allow from all
  24. </Directory>
  25. </VirtualHost>
  26. [root@orcl ~]# egrep 'vmail|www|9000' /www/extmail/dispatch-init
  27. PORT=9000
  28. SU_UID=vmail
  29. SU_GID=vmail
  30. BASE=/www/extmail

4:启动fastcgi server

  1. [root@orcl ~]# /www/extmail/dispatch-init  start
  2. Starting extmail FCGI server...
  3. [root@orcl ~]# ps -ef |grep dispatch
  4. vmail    23661     1  0 09:43 ?        00:00:00 dispatch.fcgi (master)
  5. vmail    23662 23661  0 09:43 ?        00:00:00 dispatch.fcgi (idle)
  6. vmail    23663 23661  0 09:43 ?        00:00:00 dispatch.fcgi (idle)
  7. root     23680 12093  0 09:43 pts/3    00:00:00 grep dispatch
  8. [root@orcl ~]# netstat -ntpl |grep :9000
  9. tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      23811/dispatch.fcgi
  10. [root@orcl ~]# echo '/www/extmail/dispatch-init start' >> /etc/rc.local

5:重启apache

  1. [root@orcl ~]# /usr/local/apache2.2.16/bin/apachectl -t
  2. Syntax OK
  3. [root@orcl ~]# /usr/local/apache2.2.16/bin/apachectl -k restart

备注:本文的安装过程非常繁琐,需要用到的软件也很多,因而在本文中没有提供下载地址的软件将会统一打包放在附件中,后期会重点研究下垃圾邮件过滤和邮件病毒的查杀;另外,本文参考了胡双峰同学写的博文,在此深表感谢,双峰同学博客地址:http://blog.csdn.net/deccmtd/

附件:http://down.51cto.com/data/2358866

本文转自斩月博客51CTO博客,原文链接http://blog.51cto.com/ylw6006/658208如需转载请自行联系原作者

ylw6006

Extmail企业邮箱构建指南相关推荐

  1. 企业邮箱购买指南:分享如何购买适合企业的企业邮箱

    如果你想为你的公司设立一个新的公司邮箱帐户,有几种不同的选择可供选择.根据公司的规模和需求,你可以从邮箱托管公司购买一个邮箱地址,购买域名并创建一个自定义邮箱地址,或者与第三方提供商合作.无论您选择哪 ...

  2. 阿里企业邮箱使用配置指南

    阿里云企业邮箱怎么使用?企业邮箱快速入门教程,从购买.设置管理员账号密码.创建组织架构账号邮件组.邮箱迁移.切换解析.钉邮绑定与同步,最后启用邮箱,阿里云百科分享阿里云企业邮箱使用教程快速入门: 目录 ...

  3. 手把手阿里云企业邮箱设置教程三步搞定

    阿里云企业邮箱购买后如何使用?很简单,先在企业邮箱使用域名处添加邮箱所需的MX.CNAME解析,然后设置密码,最后分配员工账号,即可完成阿里云企业邮箱的开通流程,阿小云来详细说下阿里云企业邮箱开通指南 ...

  4. 阿里云企业邮箱怎么开通?

    阿里云企业邮箱怎么开通,步骤: 1.添加解析   2.设置密码   3.分配员工账号 域名解析生效后,通过"mail.您的域名"地址进入邮箱登录界面,输入正确用户名和密码登录邮箱. ...

  5. 阿里企业邮箱收费标准_企业邮箱费用明细表

    阿里云企业邮箱收费标准(免费版/标准/尊享/集团),2023阿里云企业邮箱收费标准,免费版企业邮箱0元,标准版企业邮箱540元一年(原价600元一年),企业邮箱尊享版1400元一年,9折后1260元一 ...

  6. 阿里云免费企业邮箱申请入口(2023新版)

    阿里云免费企业邮箱没有了吗?免费企业邮箱在哪申请?每个阿里云账号可以申请一个免费企业邮箱.最近有同学反馈企业邮箱申请不了了,阿里云百科查看下,确实原免费版企业邮箱申请链接,打开后,会跳转到付费版企业邮 ...

  7. 阿里云企业邮箱设置教程(新手指南)

    阿里云企业邮箱怎么使用?企业邮箱快速入门教程,从购买.设置管理员账号密码.创建组织架构账号邮件组.邮箱迁移.切换解析.钉邮绑定与同步,最后启用邮箱,阿里云百科分享阿里云企业邮箱使用教程快速入门: 目录 ...

  8. 腾讯企业 html邮件模板,腾讯企业邮箱DMARC设置指南(TXT记录)

    腾讯企业邮箱DMARC设置指南(TXT记录) DMARC(Domain-based Message Authentication, Reporting & Conformance)是一种基于现 ...

  9. 用Jenkins连接腾讯企业邮箱,在构建任务失败时给自己发邮件提醒

    参考:Jenkins自动发送邮件配置及定时构建 Jenkins构建失败自动发邮件的配置,主要有以下三步: 1.安装插件 2.系统配置里配置发邮件的邮箱,并测试 3.在任务里配置构建后发邮箱的步骤 本文 ...

最新文章

  1. Sublime Text 3 遇到的一些小坑的解决方法
  2. POJ-2195(最小费用最大流)
  3. Android seLinux 设置
  4. 在HBase的shell命令行界面输入错误项按“退格键“删除,却怎么也删除不了:
  5. 在阿里云 ECS 上试图安装 SAP Commerce Cloud 的 137 错误
  6. linux 连接两个异构网,如何在Linux(或异构)网络上共享计算机?
  7. sublime 代码格式化
  8. 实验三+067+冯艳芳
  9. 对话鲁直:蚂蚁金服中间件的开源头羊 | 穿山甲专访
  10. RSS(Really Simple Syndication)简易信息聚合
  11. python交互模式中换行_在Python日志模式中禁止换行
  12. 认识与防御XSS攻击
  13. pandavan路由器升级php到7,中兴E8820S改spi刷Pandavan固件作为有线路由
  14. 计算机诞生了自主意识,计算机会有意识吗?整合信息或非人类独有
  15. delphi 注册列表的学习
  16. [siggraph13]《命运》的实时渲染技术
  17. c/c++ 报错:非标准语法,使用&创建指向成员的指针的解决办法
  18. 猿辅导:一个班主任老师的影响力能有多大?
  19. 通过npm运行管理端界面并解决npm install安装报错
  20. ffmpeg使用记录--解决了压制的视频在安卓不播放的问题

热门文章

  1. python爬虫数据存储文本_Python爬虫开发系列之五》数据存储为TXT、JSON格式
  2. 邵阳市计算机学校2021,邵阳市计算机中等专业学校在2021年邵阳市中等职业学校班主任基本功比赛中荣获市一等奖...
  3. c语言实现语音检测vad_AI大语音(二)——语音预处理
  4. python标准库os_Python标准库 os
  5. java捕捉sql执行异常_如何捕获java.sql.SQLIntegrityConstraintViolationException?
  6. shiro-cas------配置从数据库获取用户
  7. java gc检测工具_Java自带的性能监测工具之jstat
  8. 计算机网络cr什么意思,网络用语cr是什么意思
  9. comparator比较器用法_电压跟随器的这些点,确定都懂了吗?如果设计成同相端追随反向端会怎样? #运放...
  10. android aes256加密算法,Android中AES256加密的实现