如何在windows下部署extmail

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在windows下部署extmail相关的知识,希望对你有一定的参考价值。

1 整个 extmail邮件系统,是由多个软件构成的: 
软件名称         功能 (注意:没有列出反垃圾邮件软件与杀毒软件)   
ExtMan           Web帐户管理后台(含mailgraph_ext 图形日志分析) 
ExtMail          WebMail(perl 程序) 
Apache           Web服务器(MUA 通过浏览器收发邮件)  
Postfix          SMTP服务器,邮件传输代理(MTA) 
Maildrop         邮件投递代理(MDA) 
Courier-imap     IMAP和POP3 服务器 
Cyrus-sasl2      标准的SASL实现库,可以支持Courier Cyrus SMTP认证库 
Courier-authlib  负责courier-imap,maildrop的认证 Courier 数据认证库(mysql
MySQL            数据库,储存虚拟(域|用户|别名)等信息. 
 
 
2 确定postfix 支持的smtp认证方式,与支持的查询表(必须包含mysql格式) 
smtp 认证方式 
postconf -a 
cyrus     (sasl库) 
dovecot 
 
支持的查询表     
postconf -m        
btree 
cidr 
environ 
hash 
ldap 
mysql      (包含mysql) 
nis 
pcre 
proxy 
regexp 
static 
tcp 
unix 
 
注意: redhat/centos 自带的postfix不支持mysql方式的查询表,所以你可能需要以源码的方式重新安装postfix 并且开启mysql支持!!! 
 
 
3 extmail 发信,收信,(web登陆)认证逻辑图 
 
+++++++++++++++++++++++++++++++++++++++++++++++++ 
+ smtp/25  +   po3/110        +  http/80        +  
+ postfix  +   courier-imap   +  apache         + 
+++++++++++++++++++++++++++++++++++++++++++++++++ 
+           cyrus-sasl2                         + 
+++++++++++++++++++++++++++++++++++++++++++++++++ 
+           courier-authlib                     + 
+++++++++++++++++++++++++++++++++++++++++++++++++ 
+           mysql                               + 
+++++++++++++++++++++++++++++++++++++++++++++++++ 
 
3.1 smtp认证流程 
smtp/25    
postfix  
   |  <-- smtp 认证 
cyrus-sasl2 
   |  <-- smtpd.conf 配置文档(设置了authdaemond的Unix套接字的路径) 
courier-authlib 
   |  <-- authmysqlrc 配置文档(设置了mysql相关信息) 
mysql  
   |  -- I:储存虚拟(域|用户|别名)等信息. 
 
 
 
 
3.2 smtp认证 相关的配置文档 
postfix 
10.0.100.88 [~]$ rpm -qf /usr/lib64/sasl2/smtpd.conf  
postfix-2.6.2-5hzq 
 
10.0.100.88 [~]$ cat /usr/lib64/sasl2/smtpd.conf  
pwcheck_method: authdaemond 
log_level: 3 
mech_list: PLAIN LOGIN 
authdaemond_path:/var/spool/authdaemon/socket 
--------------------------------------------------------------- 
pwcheck_method SASL 库 auxprop(默认值) 
(描述:空格分隔开的用来效验密码的机制列表,值可能是 sasl_checkpass,auxprop, 
saslauthd,pwcheck,authdaemond【如果编译时添加了 --with-authdaemond 】 
 
mech_list SASL 库 使用所有有效插件 
(描述:空格分隔开的允许使用的机制的列表,比如:'plain otp'。用来在安装的插件 
中限制出一个可用机制的子集。) 
 
authdaemond_path SASL 库 /dev/null(默认值) 
(描述:Courier-authlib 的 authdaemond 的 Unix 套接字的路径。仅当 pwcheck_method 设 
置为 authdaemond 时可用。) 
------------------------------------------------------------------- 
 
courier-authlib 
10.0.100.88 [~]$ rpm -qf /var/spool/authdaemon/socket 
courier-authlib-0.62.4-2hzq 
 
10.0.100.88 [~]$ cat /etc/authlib/authmysqlrc 
MYSQL_SERVER            localhost 
MYSQL_USERNAME          extmail 
MYSQL_PASSWORD          xmall.com 
MYSQL_SOCKET            /var/lib/mysql/mysql.sock 
MYSQL_PORT              3306 
................................... 
 
 
4 了解 postfix 的查询表 
postfix 有许多的重要参数(main.cf)都需要能够查询其对应关系,将所有的对应关系保存在另外一个文件  "查询表" 
 
查询表格式: 
查询表的原始数据来自简单的文本文件,文件的每一行定义一组 "key_value" 对应关系,key 与 value 
以空白隔开,例如: 
cat /etc/postfix/local_in_senders 
tech@xmall.com  local_in_only 
it@xmall.com        local_in_only 
 
postmap命令创建查询表的数据库文件 
postmap /etc/postfix/local_in_senders  
file /etc/postfix/local_in_senders.db  
/etc/postfix/local_in_senders.db: Berkeley DB (Hash, version 8, native byte-order) 
 
postfix 默认的查询表数据格式为hash 
postconf | grep 'default_database_type' 
default_database_type = hash 
 
当将查询表赋值给相关参数时,则必须指出查询表的数据库类型,例如: 
postconf | grep 'hash:/'  
alias_database = hash:/etc/aliases 
alias_maps = hash:/etc/aliases, nis:mail.aliases 
 
查询表的特例-别名文件 
由于别名文件的格式不同于postfix 其它的postfix 查询表,所以不能使用postmap 创建别名的数据库文件,而应该使用postalias/newalias; 
别名文件位置:alias_maps = hash:/etc/aliases, nis:mail.aliases 
别名文件格式: 
grep -vE '(^$|^#)' /etc/aliases | head -n 3 
mailer-daemon:  postmaster 
postmaster:     root 
bin:            root 
daemon:     root 
 
 
5 linux系统 用 32位 还是 64位? 
如果邮件比较少,邮件操作系统压力不大的话,32位或者64位都可以,只不过部署extmail(源码)时要区分一下,比如: 
i386 
/usr/lib/sasl2/smtpd.conf 
/usr/lib/mysql/ 
 
x86_64 
/usr/lib64/sasl2/smtpd.conf 
/usr/lib64/mysql/ 
 
 
6 linux系统硬盘分区 
建议 /var /home 单独分区,原因有两个 
1 因为extman 与 extmail都是以 /home/domains作为基础目录 
2 /var/log/maillog 邮件日志; /var/spool/postfix 邮件队列 
 
10.0.100.88 [xmall.com]$ pwd 
/home/domains/xmall.com 
10.0.100.88 [xmall.com]$ du -sh * 
120K    zm1 
436M    zm2 
10.0.100.88 [xmall.com]$ ll 
total 8 
drwx------ 3 vuser vgroup 4096 Dec 19 16:00 zm1 
drwx------ 3 vuser vgroup 4096 Dec 19 16:00 zm2 
 
7 安装依赖rpm包 (这里使用了本地cdrom源,如果你不是本地yum源,请直接yum install 后边的rpm包)
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

参考技术A extmail 是centos下的

nginx如何快乐的在windows下部署


nginx在windows下部署


   nginx大家应该不陌生,一般我们首先会想到反向代理、控制反转、web缓存等等,其实呢,他除了干这些事,好像就是做这些事的,小巧灵活作为部署web的服务器最适合不过了。不过大多数java爱好者们习惯用Linux系统部署,所以很多人都用Linux系统来安装使用nginx,我是一个.net程序员,虽然也用java,但是习惯性的不喜欢用Linux系统。所以每次遇到跨平台的项目或者前后端分离的项目部署的时候,我还是会选择windows的系统,就连服务器我也是用的百度云安装的windows server 版本,今天我和大家看一下windows系统如何安装部署Nginx。


1.下载Nginx



http://nginx.org/en/download.html



设置Nginx为Windows服务


我们可以借助"Windows Service Wrapper"小工具来辅助实现相关功能。

http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/1.18/winsw-1.18-bin.exe




创建配置文件



    下载该工具后,将其放在 Nginx安装目录下,并重命名为nginx-service.exe,创建配置文件nginx-service.xml(名字要和工具名一样)。

    创建nginx-service.exe.config(为支持NET 4.0 runtime,默认只支持NET 2.0 runtime),


nginx-service.xml 内容如下

<service> <id>nginx</id> <name>Nginx Service</name> <description>High Performance Nginx Service</description> <logpath>C:\nginx\logs</logpath> <log mode="roll-by-size"> <sizeThreshold>10240</sizeThreshold> <keepFiles>8</keepFiles> </log> <executable>C:\nginx\nginx.exe</executable> <startarguments>-p C:\nginx</startarguments> <stopexecutable>C:\nginx\nginx.exe</stopexecutable> <stoparguments>-p C:\nginx -s stop</stoparguments></service>

nginx-service.exe.config 内容如下:

<configuration> <startup> <supportedRuntime version="v2.0.50727" /> <supportedRuntime version="v4.0" /> </startup> <runtime> <generatePublisherEvidence enabled="false"/>  </runtime></configuration>




启动服务






进入cmd控制台中运行如下命令安装windows服务,之后就可以在Windows服务面板中启动服务了



C:\nginx\nginx-service.exe install

配置nginx.conf




下面我们来配置Nginx主要的文件,重点就是配置这个文件,我们才能快乐的玩转Nginx。在nginx文件夹下的conf文件夹中的nginx.conf就是它的配置文件了。打开nginx.conf文件。在 http{} 中。有如下代码。

server {        listen       8080;        server_name  localhost;        location / {            proxy_pass http://127.0.0.1:5000;            root   html;            index  index.html index.htm;        }
        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }}

listen 表示ngnix监听的端口号,默认是80;

我是使用的项目flask是运行在本地的5000端口上,域名例如www.baidu.com。配置是

listen 80;server_name www.baidu.com;location / {  proxy_pass http://127.0.0.1:5000  root   html;    index  index.html index.htm;}


首先将项目运行起来。这时候可以在5000端口看到它。但是访问网址默认是80端口。这里配置之后。访问网址会转到5000端口。


项目部署就完成了,这里只用了nginx最基本的功能反向代理。


总结


今天因为你的点赞,让我元气满满


以上是关于如何在windows下部署extmail的主要内容,如果未能解决你的问题,请参考以下文章

如何在Win10上激活Windows Sandbox沙盒功能

virtualenv和conda的区别及windows 10上的部署

window

centos7.2下搭建postfix++dovecot+courier-authlib+extmail邮件收发系统

Linux部署KMS激活Windows 10和Office 2016

wind10优化