邮件服务器方案参考

国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

邮件服务器方案参考,如果要做邮件服务器,这里面的信息可以很好的参考下,特别是对邮件的很多方面进行了比较,选择软件。

http://wiki.ubuntu.org.cn/index.php?title=IRedMail&variant=zh-cn#MX.E8.AE.B0.E5.BD.95

 

目录

[隐藏]
  • 1 iRedmail 组件
  • 2 组件的选择,比较
    • 2.1 MTA Postfix
    • 2.2 MDA Dovecot
    • 2.3 WebMail RoundCube
    • 2.4 Policyd
    • 2.5 OS Ubuntu
    • 2.6 内容过滤 SpamAssassin
    • 2.7 amavisd-new
  • 3 iRedMail 简介
  • 4 安装需求
  • 5 准备
    • 5.1 Hostname
    • 5.2 设置源
  • 6 开始安装iredmail
    • 6.1 LDAP
    • 6.2 MYSQL
  • 7 使用iredmail
    • 7.1 webmail RoundCube
    • 7.2 iRedAdmin
    • 7.3 phpLDAPAdmin
    • 7.4 Awstats
    • 7.5 phpMyAdmin
  • 8 DNS
    • 8.1 MX记录
    • 8.2 SPF记录
    • 8.3 DKIM记录
  • 9 检查DNS设置
    • 9.1 windows nslookup
    • 9.2 linux dig
    • 9.3 web工具
  • 10 查看LOG
    • 10.1 APACHE
    • 10.2 OPENLDAP
    • 10.3 dovecot
    • 10.4 Sieve
    • 10.5 Postfix
  • 11 邮件客户端
    • 11.1 Outlook2007
    • 11.2 Outlook 2003
  • 12 FAQ
    • 12.1 邮件服务器同步备份,切换,群集,冗余
    • 12.2 停用灰名单
    • 12.3 修改root的alias
    • 12.4 添加免责声明
    • 12.5 集成Razor2和Pyzor
    • 12.6 卸载iRedMail
    • 12.7 批量创建用户
    • 12.8 支持大附件
    • 12.9 集成DNSBL
    • 12.10 停用Amavisd + ClamAV + SpamAssassin
    • 12.11 Fetchmail
    • 12.12 创建新的SSL key
    • 12.13 SPAM邮件进入垃圾箱
    • 12.14 如何修改hostname
    • 12.15 检测系统的反垃圾和病毒能力
    • 12.16 命令行管理postfix队列
    • 12.17 命令行测试邮件

[编辑]iRedmail 组件

iRedMail主要是使用下面软件来构建邮件系统,下面是Ubuntu 10.04的软件版本。

  • Apache 2.2.x
  • PHP 5.3.x
  • MySQL 5.1.x
  • OpenLDAP 2.4.x
  • Postfix 2.7.x ( MTA )
  • Dovecot 1.2.x
  • Amavisd 2.6.x
  • ClamAV 0.9x
  • SpamAssassin 3.2.x
  • Policyd 1.8.x
  • Pysieved 1.0
  • Roundcube 0.7.2 (Webmail )
  • phpMyAdmin 3.3
  • phpLDAPadmin 1.2
  • Awstats 6.9

组件的工作原理

amavisd-new 在这里的作用主要是:

  • 负责调用 ClamAV 对邮件进行病毒扫描
  • 负责调用 SpamAssassin 对邮件内容进行过滤
  • 实现 DKIM 签名和验证功能,还有实现免责声明的功能。

Image:Iredmail60.png

Image:Iredmail_amavise.png

Postfix组件

Image:Iredmail37.png

全部的组件 (图片来源 http://workaround.org/ispmail/lenny/bigpicture )

Image:Iredmail61.png

1: 当邮件发送到服务器的25端口,postfix接受连接,它会做一些基本检查

  • 发送者是否在黑名单或者实时黑名单,如果在黑名单,马上拒绝
  • 是否是授权用户,可以进行转发
  • 接收者是否是服务器的用户,如果不是,马上拒绝
  • 如果我们启用的灰名单,那么会拒绝邮件或者接收

2:postfix 把邮件通过10024端口交给amavis来处理,注意amavis,只会检查邮件而不会丢弃或者拒绝邮件。

3:amavis调用SpamAssassin检查邮件是否是spam,如果SpamAssassin认为邮件是垃圾邮件,会给邮件打上标记spam

4:amavis调用ClamAV,看邮件是否含有病毒

5:amavis把检查完的邮件,通过10025端口重新把邮件交回给postfix

6:postfix把邮件交给LDA(local delivery agent),LDA是负责本地邮件投放到用户的邮箱,(我们这里使用dovecot提供的LDA功能,而不是postfix提供的LDA)邮件会进入用户的邮箱,Dovecot会执行用户设置的filter,也就是Dovecot通过调用Sieve,放到相关的文件夹

7:Dovecot 把邮件以maildir的方式存放在硬盘上。

8: 用户使用邮件客户端,通过pop3或imap协议进行连接。webmail RoundCube,是通过imap的方式来读取邮件。

[编辑]组件的选择,比较

linux下,对于开源软件来说,没有所谓像windows一样的邮件系统,你可以选择不同的组件,组成一个邮件系统,对于邮件来说,要实现一个功能,可能有多种组件,到底哪个最好,不同的组件间的如何搭配、组合,是一件非常头疼的事情。

网上的文档,组合也是非常多样,到底哪种是最好或者更优?文档不会介绍为什么选择这个组件的理由。一般的管理员很难判断。下面就是iRedMail选择组件的理由。

大家也可以参考这位老外的文章:http://workaround.org/ispmail 如果你细心查看这篇文档的几个版本,就会发现他的组件的不同和改进。现在他的组件,已经基本和iredmail是一样。从另外一个角度证明iRedMail的组件选择,是可以经得起考验的。可以肯定一点就是目前iredmail的功能,性能会比你照这个文档配置的效果更好。

 

[编辑]MTA Postfix

linux比较有名的4大MTA,如果从功能上,应该都是可以满足你的需求,详细的比较,大家可以阅读http://shearer.org/MTA_Comparison

  • Sendmail

MTA软件的很多先进功能都是在Sendmail上最先实现的。但Sendmail也有典型的历史问题,主要是整个程序的没有实现良好的模块化,运行时需要SID权限,以及配置文件复杂难懂。这些是阻碍Sendmail更好普及应用的一些客观问题。

  • Qmail

Qmail是新生一代的MTA代表,实现了模块化设计,避免了SID问题,基本功能齐全,配置较Sendmail简单,而且用户也很广泛。但Qmail从2002年开发工作基本停止,版本停止更新,只能通过第三方的补丁来实现更多的功能,补丁程序也相对零乱,这些都是长期使用Qmail的用户或者邮件服务提供商不得不认真考虑的问题。另外,Qmail的扩展性并不是很好,经常需要补丁来完成功能的扩展。

  • Exim

Ubuntu缺省的MTA,应该是非常不错,不过国内用户不多。

  • Postfix

Postfix在设计上可以说是最为优美的,其实现了良好的模块化,邮件的处理流程是通过调用各个功能模块来完成,在效率、功能、可用性、扩展及安全等方面都考虑得比较充分。

[编辑]MDA Dovecot

pop和imap的服务器,有Dovecot 和Courier 作为选择。目前很多教程,都是采用Courier,只是因为Courier文档比较多,历史比较久。

如果你关注一下,国外很多历史比较久邮件系统的方案,都开始从Courier转到Dovecot上。

Dovecot从2002年发布以来,性能远远超越Courier。

Postfix可以直接使用Dovecot的后台认证,不需要分开配置。(如果使用Courier,我们必须安装配置额外的认证软件,比如Saslauthd,配置这个,会是一个噩梦,如果出现问题,很难排错),并且Dovecot,可以很方便实现磁盘配额的功能。

Dovecot作为Courier的可替换组件,Dovecot在磁盘读写量上比Courier减少25%左右,内存占用也比Courier节省10%到70%不等。

http://www.cnbeta.com/articles/72682.htm

大家会发现,很多文档里,如果使用Counier,会介绍使用maildrop 作为LDA,也就是postfix把邮件交给maildrop,他负责投递到用户的邮箱。

如果我们使用Dovecot,那么就可以直接使用Dovecot带的LDA就可以。不需要额外的软件。

所以作为构建一个新的邮件服务器,Dovecot,肯定是最佳的选择,这个应该没有什么异议。

[编辑]WebMail RoundCube

对于邮件系统来说,webmail是必不可少,修改密码,自动回复这些工作,必须登录webmail来设置。 开源的webmail,其实选择也很多。

  • SquirrelMail
  • horde
  • Extmail
  • atmail
  • openwebmail
  • RoundCube

RoundCube,算是webmail里后起之秀,从2005年开发发布。目前最新的版本0.51,已经支持插件的机制。现在开发的插件的社区很活跃。如果把所有的插件都装起来,那肯定是无敌。

对于开源的webmail,有一个很困惑国人的需求,当你在写邮件的时候,希望选择从通讯录里选择联系人。这个以前在任何的开源webmail里都是无法实现,甚至google的gmail也是最近才实现这个功能。

RoundCube 通过插件,已经完美实现了这个功能。

[编辑]Policyd

灰名单,是对付垃圾邮件的一个有效的手段,很多文档介绍使用PostGrey来实现灰名单的功能。

Policyd,不但有灰名单的功能,还提供很多别的功能,可以大大提高反垃圾邮件的效果。有一点要注意的,目前iRedMail 使用的是policyd1.8的版本。大家可以参考 http://policyd.sourceforge.net/readme.html

[编辑]OS Ubuntu

iRedMail 有一个重要的设计原则,尽可能使用发行版提供的包,尤其是官方提供技术支持和安全更新的包,这样做的好处是很明显。

  • 升级方便
  • 安全更新有保证


iRedMail目前支持RedHat,Debian,Ubuntu和Freebsd几个发行版,Ubuntu软件包的支持是最好的,从Ubuntu9.04开始,iRedmail,就基本全部采用Ubuntu官方提供支持和更新的软件包来构建整个邮件系统,除了几个web管理程序以外(web管理程序,你可以不使用)。

已经有用户,顺利从9.04升级到9.10,邮件系统,没有任何影响。在未来的10.04,也是不会受到任何的影响,这就是iRedMail 和Ubuntu结合强大的地方。

可以这样理解,使用Ubuntu提供的邮件相关的软件包,装完后,用iRedMail 的安装脚本,快速帮助你按照那些几十页的技术文档,1分钟内完成全部的配置。

很多用户经常问一个问题:如果iRedMail项目停止,我怎么办,以后升级怎么办?其实如果你使用任何的邮件系统,都可能会有这样的风险。

不过使用iredmail,就会例外,因为只有一种情况,Ubuntu停止开发,你才会受影响。只要Ubuntu,继续发展,你的邮件系统,就可以继续更新。因为你的所有的软件包,都是Ubuntu官方的提供的,他们是会保证持续更新和安全漏洞的修复。

 

[编辑]内容过滤 SpamAssassin

防垃圾邮件,是邮件系统的基本功能,SpamAssassin,是最有名的,尤其是和Amavisd ClamAV结合起来,这是一个经得起考虑的组合。

对于内容过滤,其实还有一个选择:dspam,我没有使用过dspam,无法具体评价。

目前从iRedMail的客户部署情况,基本没有用户反映垃圾邮件过滤有问题。

SpamAssassin怎么管理,有后台可以登录吗?

[编辑]amavisd-new

amavisd-new,可以理解成一个代理,Postfix把邮件交给他,他负责联系杀毒和反垃圾。

amavisd-new 在这里的作用主要是:

   * 负责调用 ClamAV 对邮件进行病毒扫描* 负责调用 SpamAssassin 对邮件内容进行过滤 

如果大家看文档,还会发现有人使用maildrop,通过maildrop,maildrop也可以调用spamassassin和clamav,实现类似amavisd-new的功能。

大家可以阅读下面的文档,这是老外使用amavisd-new,ClamAV SpamAssassin的技术文档,那么就会明白为什么iredmail会选择这amavisd-new。http://www200.pair.com/mecham/spam/

[编辑]iRedMail 简介

iRedMail 是一套基于 GPL 发布的 Shell 脚本,目的是全自动安装和配置邮件服务所需要的组件,以减轻系统管理员的负担。它提供了一个基本的命令行下的用户交互界面(使用 dialog 程序实现),用户只需要简单地选择他所希望使用的组件,就可以在几分钟内(少于 3 分钟)部署好一台功能强大的邮件服务器。

iRedmail 使用到的邮件相关的软件包,都是采用发行版提供的软件包。

  • iRedMail 官方中文支持论坛 http://www.iredmail.org/bbs
  • 代码下载 http://code.google.com/iredmail

[编辑]安装需求

iRedMail 目前支持以下Ubuntu版本:

OSVersionPlatformiRedMail Version
Ubuntu (presise, 12.04)12.04i386, amd64>= 0.8.0
Ubuntu (Luicd,11.04)10.04i386, amd64>= 0.6.1
  • 生产中部署至少需要512MB 内存.

Downloading Ubuntu CD/DVD images via HTTP/FTP

[编辑]准备

[编辑]Hostname

这里说的 hostname 是指使用 'hostname -f' 命令打印出来的系统主机名,例如:

 

$ hostname -fmail.example.com


不管您的 Linux 系统是否作为公网服务器,我们都强烈建议您设置一个合适的主机名。

在 Ubuntu 系统中,主机名的设置涉及到两个文件:

  1. /etc/hostname: hostname 设置
  2. /etc/hosts: hostname <=> IP 地址对应

用你熟悉的编辑器编辑 /etc/hostname 文件

$cat /etc/hostname
mail

编辑 / /etc/hosts 文件

$cat /etc/hosts
127.0.0.1   mail.example.com mail localhost.localdomain localhost

检查FQDN Name设置,

让hostname修改马上生效

#hostname -F /etc/hostname
# hostname -f
mail.example.com

[编辑]设置源

只需要相应的发行版的'main' 和 'universe' , 使用安装系统的时候ubuntu缺省的源,就可以了。

[编辑]开始安装iredmail

  • 切换到root用户
# sudo su -
  • 下载最新版本的iredmail,解压
 #wget http://iredmail.googlecode.com/files/iRedMail-0.7.0.tar.bz2#tar jxvf iRedMail-0.7.0.tar.bz2
#cd iRedMail-0.7.0
#bash iRedMail.sh

 

  • 可以开始执行主脚本,它会调用 'dialog' 程序引导用户配置邮件服务器

 

  • iRedMail 安装进程的欢迎页面

Image:Iredmail01.png

  • 选择用于存储所有邮件的目录(注意:由于所有邮件都将存储在这个目录,所以这个目录需要占用较多的磁盘空间)

Image:Iredmail02.png

[编辑]LDAP

ldap图解

[编辑]MYSQL

mysql安装图解

[编辑]使用iredmail

安装完成后,一定要仔细阅读iredmail.tip,里面包括设置信息和帐号,下面各个应用的访问路径。这个是本安装的范例 (http://code.google.com/p/iredmail/source/browse/extra/iRedMail.tips )

  • mysql 存储虚拟用户和domain 我们通过iRedAdmin 进行邮件domain,用户管理
  • mysql 管理,可以通过phpmyadmin管理
  • LDAP 存储虚拟用户和domain,我们通过iRedAdmin进行邮件domain,用户管理
  • LDAP 的管理,可以通过phpldapadmin管理

 

[编辑]webmail RoundCube

  • 可以使用http://your_server/mail/ (or /webmail, /roundcube)访问webmail (注意,postmaster不是邮箱用户,不能登陆)

Image:Iredmail18.png

  • 由于www@example.com是root的alias,所以会受到系统发的邮件,请细心阅读这两封邮件,iredmail.tip 包含所有的邮件设置的相关信息。

Image:Iredmail19.png

  • 设置假期外出,需要新建过滤器

Image:Iredmail20.png

  • 全局地址簿 (LDAP)

Image:Iredmail21.png

[编辑]iRedAdmin

iRedAdmin开源版本是iredmail官方开发邮件后台管理,目前可以同时管理ldap和mysql。

大家也可以通过iredmail官方提供的demo (http://www.iredmail.org/admin_demo.html ) 深入了解iredadmin

  • 登录iRedAdmin

可以使用https://your_server/iredadmin 访问iredadmin (注意是 https )

Image:Iredadmin18.png

  • 修改语言

Image:Iredadmin28.png

  • 控制台

Image:Iredadmin19.png

  • 域名管理

Image:Iredadmin24.png

  • 添加domain

Image:Iredadmin29.png

  • 用户管理,添加用户

Image:Iredadmin27.png

  • 管理员管理 添加管理员

Image:Iredadmin30.png

[编辑]phpLDAPAdmin

可以使用https://your_server/ldap 访问iredadmin (注意是 https )

  • 登录phpLDAPAdmin

Image:Iredmail29.png

 

  • 查看ldap

Image:Iredmail30.png

[编辑]Awstats

可以使用https://your_server/awstats/awstats.pl 访问Awstats (注意是 https )

 

  • 登录Awstats

Image:Iredmail31.png

  • 如果希望查看邮件的流量,你需要修改你的链接,(https://your_server/awstats/awstats.pl?config=mail ) 在上面链接加上 ?config=mail

Image:Iredmail32.png

[编辑]phpMyAdmin

可以使用https://your_server/phpmyadmin 访问phpMyAdmin (注意是 https )

[编辑]DNS

DNS记录,需要你到你的域名托管商那里进行设置或者你自己管理DNS服务器。不少域名托管商不支持txt记录或者不支持DKIM记录,所以你就无法使用SPF和DKIM的功能。

DNS的修改,需要48小时以上才能生效。

国内的万网是不支持DKIM,目前新网是支持SPF和DKIM

 

[编辑]MX记录

邮件的MX记录最好是指向机器A记录,尽量不要直接指向IP地址(不符合规范)。

  • 添加A记录

mail.example.com 192.168.1.100

  • 添加MX记录

example.com mail.example.com

[编辑]SPF记录

  • SPF 记录指向A主机记录
example.com.           3600    IN      TXT     "v=spf1 mx mx:mail.example.com -all"
  • SPF 记录指向IP地址
example.com.          3600    IN      TXT     "v=spf1 ip4:192.168.1.100 -all"

[编辑]DKIM记录

可以通过iredmail.tips 获得域名的DKIM,也可以在命令行下输入

# amavisd-new showkeys
; key#1, domain example.com, /var/lib/dkim/example.com.pem
dkim._domainkey.example.com.    3600 TXT ("v=DKIM1; p=""MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGNVMuQRKqYeySIzqTGTm3xRzF""/ZzhmMnpZkEcVVjFAk+t7E388oFGu/knyh6KBKwpZxHUN5HoOYVjMudqaR2FcSvK""z+joFj8Vh3rXoTLa1zHDyfD7hICzxdEgmQZ8MJM5rjPPrRGZXnPowNYDsd6nDJ86""N38iFYU+jALBYDLBwQIDAQAB")

把上面记录添加到ISP的DNS记录

dkim._domainkey.example.com.   v=DKIM1; p=MIGfMA0....(省略)DLBwQIDAQAB


Image:Iredmail35.png

添加完DNS记录后,如果记录生效,可以通过运行命令检测

# amavisd-new testkeys
TESTING: dkim._domainkey.example.com      => pass

 

[编辑]检查DNS设置

下面有几种方法,可以帮助你检测DNS是否设置生效和正常工作

[编辑]windows nslookup

C:\>nslookup
Default Server:  unknown
Address:  192.168.1.1> server 4.2.2.1
Default Server:  vnsc-pri.sys.gtei.net
Address:  4.2.2.1> set type=mx
> example.com
Server:  vnsc-pri.sys.gtei.net
Address:  4.2.2.1Non-authoritative answer:
example.com      MX preference = 20, mail exchanger = mail.example.com
> set type=txt
> example.com
Server:  vnsc-pri.sys.gtei.net
Address:  4.2.2.1Non-authoritative answer:
example.com      text ="v=spf1 ip4:192.168.1.100 -all"> dkim._domainkey.example.com
Server:  vnsc-pri.sys.gtei.net
Address:  4.2.2.1Non-authoritative answer:
dkim._domainkey.example.com      text ="v=DKIM1; p= MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsgZaIvYHAos2jbp3CHW0
AwrTnAEwV1p4EaZP/JuF8t1BETBVg6WJr3YWN5ijCpi9vnw96nmf/u5MgtbLwZ+AzDBkbOY7Jbb/hIO+
mpmmfdJAY3w8KoXLCuQKDysXOys45YtfJEj66s51EHH3W+iXPYw3I/NWHjY3a5/mXnk4XJQIDAQAB"

[编辑]linux dig

如果你的机器没有dig命令,你需要安装

apt-get install dnsutils

这个时候,就可以使用dig命令

  • MX记录
# host exmple.com
example.com has address 192.168.1.100
example.com mail is handled by 10 mail.example.com.

 

  • SPF记录
# dig txt hotmail.com; <<>> DiG 9.4.2-P2 <<>> txt hotmail.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43130
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0;; QUESTION SECTION:
;hotmail.com.                   IN      TXT;; ANSWER SECTION:
hotmail.com.            3600    IN      TXT     "v=spf1 include:spf-a.hotmail.com include:spf-b.hotmail.com include:spf-c.hotmail.com include:spf-d.hotmail.com ~all";; Query time: 176 msec
;; SERVER: 64.71.161.8#53(64.71.161.8)
;; WHEN: Sat Dec  5 08:43:51 2009
;; MSG SIZE  rcvd: 157
  • DKIM记录
#dig txt  dkim._domainkey.example.com

[编辑]web工具

  • 黑名单检查

http://www.mxtoolbox.com/

通过这个不但可以检查各种DNS设置,还可以检测到你的IP地址,是否已经给列入黑名单。

  • 检测MX记录

http://zmailer.org/mxverify.html

  • 检测SPF记录

http://www.openspf.org/

  • 测试spf和dkim记录

http://www.brandonchecketts.com/emailtest.php

网页里有一个邮箱地址,你可以通过安装过程中创建的第一个用户www,发送邮件给这个测试邮箱,你就可以马上看到结果

  • 发邮件到gmail

查看发送过去的邮件的源码, 如果显示 dkim=pass 和 SPF: pass 就表示正常

Received-SPF: pass (google.com: domain of www@example.com designates 66.160.197.199 
as permitted sender) client-ip=66.160.197.199;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of www@example.com 
designates 66.160.197.199 as permitted sender) smtp.mail=www@example.com; 
dkim=pass header.i=@example.com

[编辑]查看LOG

Linux下,如果出现问题,那么排错最佳的方式就是查看log,不过为了性能,有些应用,缺省下没有开启错误log,我们需要启用。

[编辑]APACHE

# tail  /var/log/apache2/error.log                        #查看log# tail -0f /var/log/apache2/error.log                     #实时查看log

 

[编辑]OPENLDAP

当你采用ldap来验证用户,当用户登录出现问题的时候,你就需要查看ldap的log,看那个地方出错。

  • 缺省的情况下,openldap的log没有启用,我们需要修改配置文件 /etc/ldap/slapd.conf
loglevel    256 # <-- change form 0 to 256  
  • 重新启动LDAP服务
/etc/init.d/slapd restart
  • 查看log
tail  /var/log/openldap.log

[编辑]dovecot

当接收邮件有问题的时候,我们需要查看dovecot的log,

  • 编辑/etc/dovecot/dovecot.conf
mail_debug = yes                #把注释去掉
  • 从新启动dovecot服务
# /etc/init.d/dovecot restart
  • 查看log
# tail /var/log/dovecot.log 

[编辑]Sieve

当RoundCube里过滤器不工作或者有问题的情况下,你就需要查看sieve的log

# tail /var/log/sieve.log

[编辑]Postfix

查看邮件发送的问题,就需要查看posfix Log

#tail /var/log/mail.log

Postfix 排错,还可以通过Postfix提供邮件队例队列管理工具:

 

postqueue -p 列出队列里的所有邮件
postsuper -d ID 删除一封邮件
postsuper -d ALL 删除所有邮件
postsuper –h ID 保留邮件
postsuper -r ALL 重新排例
postcat -q ID   显示邮件内容
postqueue -f   清空邮件

 

[编辑]邮件客户端

iRedmail提供pop,imap和pops,imaps的连接,可以根据需要选择采用哪种方式

 

ProtocolUnencrypted portTLS PortSSL Port
SMTP25587465
POP3110110995
IMAP143143993

[编辑]Outlook2007

Outlook2007设置图解

[编辑]Outlook 2003

  • pop3 非加密

这个设置和outlook 2007是一样,参考上面设置就可以, pop使用110,smtp是25

  • pop3 加密

注意端口,这是和outlook2007不同的地方,outlook2003 只支持SSL,导入证书,可以参考上面设置

Image:Iredmail51.gif

  • imap 非加密

这个和2007设置是一样,imap是143,smtp是25

  • imap 加密

Image:Iredmail55.gif

[编辑]FAQ

这个faq会不定期更新,最新的FAQ,大家可以直接访问 http://www.iredmail.org/faq.html

[编辑]邮件服务器同步备份,切换,群集,冗余

邮件系统的备份,可以考虑采用rsync, unison,如果数据量大,可以参考文章 http://blog.daviesliu.net/2008/04/24/sync/

实现邮件的群集,有很多方案,一般可以分为

采用共享存储 (多台服务器)负载均衡,每台服务器都在工作。通过这种方式,可以实现支撑更多的用户。

没有共享存储 (两台服务器)实现冗余,一台机器是闲着。

你可以把iredmail部署到这两种方案上,iRedMail官方网站提供这两种方案的技术支持。

  • 采用共享存储,一般都是利用lvs

Image:Iredmail_lvs.jpg

  • 不采用共享存储,就可以采用DRBD+heardbeat 的方案

DRBD,简单理解,就是网络的raid1,实现两台服务器的镜像。具体的配置过程,大家可以参考 http://www.iredmail.org/bbs/topic1298-view.html


Image:Iredmail_drbd.gif

[编辑]停用灰名单

灰名单,是有效阻止垃圾邮件的手段,原理是当一个新的邮箱地址发邮件过来,都会先拒绝2次,然后第三次才会接收下来。一般发垃圾邮件的人,因为队列太长,就不会再尝试投递。

灰名单会导致第一次发送延迟,不过第二次以后就没有问题。如果希望停止灰名单

编辑/etc/postfix-policyd.conf

#   1=on  0=off
GREYLISTING=0   #把1改成0

重新启动policy服务

# /etc/init.d/postfix-policyd restart

[编辑]修改root的alias

iRedmail的安装过程,我们设置了root的alias,如果我们希望修改邮箱地址。

编辑/etc/postfix/aliases 改成你需要的邮箱地址。以后系统的警告邮件就会发送到新的邮箱。

# See man 5 aliases for format
postmaster:    root
clamav: root
root: www@18demo.com
policyd: www@18demo.com
amavis: root

修改后,需要运行下面命令才可以生效。

# postalias /etc/postfix/aliases

这个时候可以测试一下,给root发一封邮件,是否生效

cd iRedMail-0.5.1
mail -s "test" root < iRedMail.tips

[编辑]添加免责声明

iRedmail 是通过Amavisd-new + alterMIME 实现出站的邮件都添加免责声明。alterMIME支持Per-domain,Sub-domain,Per-user添加免责声明,同时支持txt和html格式。缺省情况下,iRedMail没有启用。

  • 编辑 /etc/amavis/conf.d/50-user 把注释去掉。启用免责声明的功能
# ------------ Disclaimer Setting ---------------
# Uncomment this line to enable singing disclaimer in outgoing mails.
$defang_maps_by_ccat{+CC_CATCHALL} = [ 'disclaimer' ];  #把注释去掉
  • 创建一个test免责声明,这个声明会添加到所有的邮件里。如果希望每个domain或者每个用户不同声明,那么可以单独添加免责声明。存放的路径是/etc/postfix/disclaimer/
#echo 'Testing disclaimer.' > /etc/postfix/disclaimer/default.txt
  • 重启amavisd服务
# /etc/init.d/amavis restart

这个时候,所有往外发送的邮件,都会在底部加上 'Testing disclaimer.'

 

[编辑]集成Razor2和Pyzor

  • 打开防火墙端口

Razor2:必须打开防火墙端口 2307/TCP

pyzor: 必须打开防火墙端口 24441/UDP

编辑/etc/default/iptables 文件

# http/https, smtp/smtps, pop3/pop3s, imap/imaps, ssh
-A INPUT -p tcp -m multiport --dport 80,443,25,465,110,995,143,993,587,
465,22,2307,24441 -j ACCEPT # <-- Add 2307 24441

重启iptables服务

# /etc/init.d/iptables restart
  • 安装Razor2
root@mail:~# apt-get install razor
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:razor
0 upgraded, 1 newly installed, 0 to remove and 24 not upgraded.
Need to get 125kB of archives.
After this operation, 549kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com jaunty/universe razor 1:2.85-1 [125kB]
Fetched 125kB in 1s (99.4kB/s)
Selecting previously deselected package razor.
(Reading database ... 23030 files and directories currently installed.)
Unpacking razor (from .../razor_1%3a2.85-1_amd64.deb) ...
Setting up razor (1:2.85-1) ...
  • 设置Razor2
root@mail:~# mkdir /var/lib/amavis/.razor; chown -Rf amavis:amavis /var/lib/amavis/.razorroot@mail:~# 
root@mail:~# su amavis
$ razor-admin -home=/var/lib/amavis/.razor -create
$ razor-admin -home=/var/lib/amavis/.razor -discover
$ razor-admin -home=/var/lib/amavis/.razor -register
Register successful.  Identity stored in /var/lib/amavis/.razor/identity-rupCWQ7Auy
$ exit
  • 安装Pyzor
# apt-get install pyzor
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:python-gdbm
Suggested packages:python-gdbm-dbg
The following NEW packages will be installed:python-gdbm pyzor
0 upgraded, 2 newly installed, 0 to remove and 24 not upgraded.
Need to get 56.3kB of archives.
After this operation, 336kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://archive.ubuntu.com jaunty/main python-gdbm 2.6.2-0ubuntu1 [18.5kB]
Get:2 http://archive.ubuntu.com jaunty/universe pyzor 1:0.4.0+cvs20030201-8 [37.8kB]
Fetched 56.3kB in 0s (57.4kB/s)   
Selecting previously deselected package python-gdbm.
(Reading database ... 23094 files and directories currently installed.)
Unpacking python-gdbm (from .../python-gdbm_2.6.2-0ubuntu1_amd64.deb) ...
Selecting previously deselected package pyzor.
Unpacking pyzor (from .../pyzor_1%3a0.4.0+cvs20030201-8_all.deb) ...
Setting up python-gdbm (2.6.2-0ubuntu1) ...
Setting up pyzor (1:0.4.0+cvs20030201-8) ...
  • 设置pyzor
# mkdir /var/lib/amavis/.pyzor; chown amavis:amavis /var/lib/amavis/.pyzor 
# su amavis
$ pyzor --homedir /var/lib/amavis/.pyzor discover
/var/lib/python-support/python2.6/pyzor/__init__.py:11: DeprecationWarning: the sha module is deprecated; use the hashlib module insteadimport sha
/var/lib/python-support/python2.6/pyzor/client.py:10: DeprecationWarning: the multifile module has been deprecated since Python 2.5import multifile
downloading servers from http://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x
$ exit
  • 编辑/etc/spamassassin/local.cf 在最末尾添加下面内容
use_razor2 1
score RAZOR2_CHECK 2.500
score PYZOR_CHECK 2.500
  • 重启amavis服务
# /etc/init.d/amavis restart

[编辑]卸载iRedMail

当你希望卸载或者重新安装iredmail,那么可以利用iRedMail提供的工具,快速卸载iredmail各个组件,进行重新安装

# cd iRedMail-0.5.1/tools/
# bash clear_iredmail.sh

按照提示进行就可以,当你重新安装的时候,你还是需要运行下载脚本,再运行安装脚本。

[编辑]批量创建用户

iRedMail提供脚本,可以让用户快速添加用户

  • MYSQL

你可以编辑create_mail_user_MySQL.sh,修改默认值,如果你安装的时候修改的邮件的存储路径,那么你必须修改脚本的 STORAGE_BASE_DIRECTORY

创建邮箱用户的缺省密码是和用户名相同

 

# cd iRedMail-0.5.1/tools/
# bash create_mail_user_MySQL.sh exmple.com user1 user2 user3

这个时候,会创建output.sql 文件

# mysql -uroot -p
mysql> USE vmail;
mysql> SOURCE /path/to/output.sql;

 

  • LDAP

使用create_mail_user_OpenLDAP.sh脚本,可以快速创建ldap的邮件用户,我们需要修改脚本

创建邮箱用户的缺省密码是和用户名相同

STORAGE_BASE_DIRECTORY="/var/vmail/vmail01"        #如果你安装的时候修改的邮件的存储路径
LDAP_SUFFIX="dc=iredmail,dc=org"      #你的ldap SUFFIX
BINDPW='passwd'       #ldap管理员cn=manager 密码

运行脚本,创建用户

# bash create_mail_user_OpenLDAP.sh example.com user1 user2

 

[编辑]支持大附件

要注意的是:下面的设置,是可以让你的服务器是可以发送大附件,也需要对方的服务器能够接收大附件,否则还是无法发送出去。

  • 客户端发送大附件

如果你是希望邮件客户端发送大附件,那么你只需要运行

 

# postconf -e message_size_limit='104857600'   #把附件增加到100m

重启postfix服务

# /etc/init.d/postfix restart
  • webmail

如果希望webmail,发送大附件,那么你还需要多修改2个地方

1:编辑/etc/php5/apache2/php.ini 文件

upload_max_filesize = 100M;
post_max_size = 100M;

2:修改/usr/share/apache2/roundcube/.htaccess 文件

 

php_value    upload_max_filesize    100M
php_value    post_max_size    100M

重启apache服务

# /etc/init.d/apache2 restart

[编辑]集成DNSBL

编辑/etc/postfix/main.cf 文件,在smtpd_recipient_restrictions 下添加下面内容

 

smtpd_recipient_restrictions =reject_unknown_sender_domain,reject_unknown_recipient_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unlisted_recipient,permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,reject_non_fqdn_helo_hostname,reject_invalid_helo_hostname,check_policy_service inet:127.0.0.1:10031##添加下面内容reject_rhsbl_sender dsn.rfc-ignorant.org, reject_rbl_client dnsbl.njabl.org,                    reject_rbl_client dnsbl.ahbl.org,reject_rbl_client bl.spamcop.net,reject_rbl_client zen.spamhaus.org,

重启postfix服务

# /etc/init.d/postfix reload

 

[编辑]停用Amavisd + ClamAV + SpamAssassin

如果希望停用杀毒和发垃圾的功能,编辑/etc/postfix/main.cf 文件,到把最底下的这行注释掉

content_filter = smtp-amavis:[127.0.0.1]:10024

这个时候,postfix接收到的邮件,就不会再交给amavis处理,就可以把amavisd, clamd, freshclam服务停止。不过要注意的是这个时候DKIM的功能,也是无法使用,因为iredmail的DKIM是通过amavis来实现的。

rolaod postifx服务

#update-rc.d amavis purge
#update-rc.d clamav purge
# /etc/init.d/postfix reload

[编辑]Fetchmail

目前iRedMail还没有集成fetchmail的功能,如果你需要使用fetchmail,你可以自己集成

  • 安装fetchmail
apt-get install fetchmail
  • 设置fetchmail daemon运行修改/etc/default/fetchmail 文件
START_DAEMON=yes #把no改为yes
  • 创建/etc/fetchmailrc 文件,添加下面的内容
set daemon        300        #5分钟取一次邮件
set syslog                   
set postmaster  rootset no bouncemail              
defaults:
timeout 300
antispam -1
batchlimit 100#用户:shakechen  也可以是 shakechen@126.com 密码是:12345678 本地的邮箱:www@18demo.compoll pop3.126.com protocol POP3 user shakechen there with password 12345678 is www@18demo.com here

最后一行意思是把126邮箱里的用户的邮件,投递到本地的邮箱帐号 www@18demo.com

  • 设置/etc/fetchmailrc 文件权限
chmod 600 /etc/fetchmailrc
chown fetchmail /etc/fetchmailrc
  • 重启服务
/etc/init.d/fetchmail start
  • 查看log
# tail /var/log/syslog
Dec  7 16:01:36 mail fetchmail[4179]: 723 messages (723 seen) for shakechen at pop3.126.com (36923210 octets). 
Dec  7 16:01:37 mail fetchmail[4179]: sleeping at Mon Dec  7 16:01:37 2009 for 30 seconds 
Dec  7 16:02:07 mail fetchmail[4179]: awakened at Mon Dec  7 16:02:07 2009 
Dec  7 16:02:08 mail fetchmail[4179]: 723 messages (723 seen) for shakechen at pop3.126.com (36923210 octets). 
Dec  7 16:02:09 mail fetchmail[4179]: sleeping at Mon Dec  7 16:02:09 2009 for 30 seconds 

 

[编辑]创建新的SSL key

如果你修改了计算机名字或者希望使用自己的信息创建自己的ssl key。

  • 下载iredmail提供的脚本
# wget http://iredmail.googlecode.com/hg/iRedMail/tools/generate_ssl_keys.sh
  • 编辑脚本里的你希望修改的相关信息
# SSL key.
export SSL_CERT_FILE="${ROOTDIR}/certs/iRedMail_CA.pem"
export SSL_KEY_FILE="${ROOTDIR}/private/iRedMail.key"
export TLS_COUNTRY='CN'
export TLS_STATE='GuangDong'
export TLS_CITY='ShenZhen'
export TLS_COMPANY="${HOSTNAME}"
export TLS_DEPARTMENT='IT'
export TLS_HOSTNAME="${HOSTNAME}"
export TLS_ADMIN="root@${HOSTNAME}"
  • 执行脚本
# bash generate_ssl_keys.sh 
SSL keys were generated:- /root/certs/iRedMail_CA.pem- /root/private/iRedMail.key
  • 把以前的证书备份一下,把新证书复制到下面两个目录下。
/etc/ssl/private/iRedMail.key
/etc/ssl/certs/iRedMail_CA.pem

[编辑]SPAM邮件进入垃圾箱

如果用户是使用邮件客户端,是无法收取到junk的邮件,所以iredmail缺省是让spam的邮件进入收件箱。如果我们希望让spam的邮件,不进入收件箱,直接存在垃圾邮箱的文件夹里。

# cd /var/vmail/sieve
# cp dovecot.sieve.sample dovecot.sieve
  • 重启dovecot 服务
# /etc/init.d/dovecot restart

[编辑]如何修改hostname

如果我们装完iremdail后,希望修改hostname(FQDN),那么我们需要修改下面相关的内容。

  1. 修改hostname in /etc/hostname and /etc/hosts
  2. 产生新的证书 参考上面的faq
  3. 修改 hostname in amavis.conf
  4. 修改 hostname in dovecot-quota-warning.sh
  5. 修改 hostname in posfix/main.cf
  6. cp -Rf /etc /var/spool/postfix

[编辑]检测系统的反垃圾和病毒能力

装好系统后,如何评估系统的发垃圾和病毒能力?总不能自己给自己发垃圾邮件和病毒邮件吧。

http://www.gfi.com/emailsecuritytest/

我们可以通过GFI来测试我们邮件系统的发垃圾和病毒能力。

当你的邮箱验证通过后,他会发送垃圾邮件和病毒邮件到你的邮箱,你就可以检测到邮件系统的反垃圾和病毒查杀能力。

http://www.antispam-ufrj.pads.ufrj.br/

测试邮件服务器是否被设成公开转发站

http://www.abuse.net/relay.html

[编辑]命令行管理postfix队列

  • 查看队列
postqueue -p
  • 删除队列邮件根据ID
postsuper -d MessageID
  • 根据发送者来删除队列邮件,替换 “info@otherdomain.com”就可以
mailq | tail +2 | awk ‘BEGIN { RS = “” }
# $7=sender, $8=recipient1, $9=recipient2
{ if ($7 == “info@otherdomain.com” && $9 == “”)
print $1 }
‘ | tr -d ‘*!’ | postsuper -d -
  • 根据收件人删除,替换you@yourdomain.com 就可以
mailq | tail +2 | awk ‘BEGIN { RS = “” }
# $7=sender, $8=recipient1, $9=recipient2
{ if ($8 == “you@yourdomain.com” && $9 == “”)
print $1 }
‘ | tr -d ‘*!’ | postsuper -d -
  • 根据发生服务器的hostname来删除,替换掉 senderhostname
mailq | grep senderhostname | awk ‘{ print $1′} | postsuper -d -
  • 如果当前的系统队列很长,负担很重,我们可以把队列里的邮件先hold
postsuper -h ALL

当处理完后,再把队列移回来

postsuper -r ALL

参考文章 http://www.faqforge.com/linux/server/manage-the-postfix-mailqueue-with-postsuper-postqueue-und-mailq/

 

[编辑]命令行测试邮件

测试邮件,可以用客户端, 也可以使用命令行测试,这样更加直接.

  • BASE64编码的用户名密码

我们需要把我们的登录帐号和密码一起编码
user:www@example.com
pass: iredmail

# perl -MMIME::Base64 -e 'print encode_base64("www\@example.com\0www\@example.com\0iredmail")';
d3d3QGV4YW1wbGUuY29tAHd3d0BleGFtcGxlLmNvbQBpcmVkbWFpbA==
  • SMTP 登录并发送邮件
# telnet localhost 25            #在服务器上telnet到本地,下面的是正常输出
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 u910.example.com ESMTP iRedMail (Ubuntu)
ehlo example.com                   #握手
250-u910.example.com
250-PIPELINING
250-SIZE 15728640
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
auth plain d3d3QGV4YW1wbGUuY29tAHd3d0BleGFtcGxlLmNvbQBpcmVkbWFpbA==  # 输入base 64后的用户名和密码
235 2.7.0 Authentication successful
mail from:<www@example.com>         #使用 www@example.com 帐号对外发送邮件
250 2.1.0 Ok
rcpt to:<shake.chen@gmail.com>          #发送邮件到 shake.chen@gmail.com 这个邮箱
250 2.1.5 Ok
data                                                    #输入data命令后,下面就是邮件的内容
354 End data with <CR><LF>.<CR><LF>
to:shake.chen@gmail.com                    #这是邮件里显示的发送给谁。
from:www@example.com                     #那个帐号发送过来的
subject: test by telnet smtp                  #邮件的主题
test , just a test ,check the subject whetehr working.
.            #写完邮件后,输入一个点,回车,就表示邮件完成。
250 2.0.0 Ok: queued as B6B4820EC9
quit              #退出
221 2.0.0 Bye
Connection closed by foreign host.

 

  • pop3连接

可以在远程使用命令行或者本地来测试pop3

# telnet localhost 110     #登录110端口
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user www@example.com    #输入登录的邮件帐号
+OK
pass iredmail          #帐号的密码,这里直接输入密码就可以
+OK Logged in.
list                           #查看邮箱里的邮件
+OK 4 messages:
1 1182
2 6195
3 1588
4 878
.
retr 1                  #显示第一封邮件内容
quit                     #退出 
+OK Logging out.
Connection closed by foreign host.

转载于:https://www.cnblogs.com/AloneSword/p/3162289.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录一下,踩得奇奇怪怪的坑

1servlet虚拟路径访问不到(默认的可以访问) url后的路径设置时与项目的名称一致 url必须与这个一致 2.jdbc连接数据库&#xff0c;本地测试无问题&#xff0c;一用tomcat发包就出错&#xff0c;导致连接不上时&#xff0c;看看你得配置文件的位置是否有误 放到resources目录下…

归并排序算法(C#实现)

归并排序(Merge Sort)是利用"归并"技术来进行排序。归并是指将若干个已排序的子文件合并成一个有序的文件。归并排序有两种方式&#xff1a;1): 自底向上的方法 2):自顶向下的方法 1、 自底向上的方法&#xff08;1&#xff09; 自底向上的基本思想 自底向上的基…

m5310采用芯片 中移物联_芯链HPB引领硬件区块链加密芯片技术,有望在谷歌光芯之前突破...

伴随人工智能时代的开启&#xff0c;世界对于高性能计算机器的需求磅礴发展&#xff1b;以往的高性能计算芯片是基于CMOS数字电路的处理器&#xff0c;而伴随着电子元件的摩尔定律接近技术瓶颈&#xff0c;数字电路芯片的发展速度和发展基础都在缓慢进行&#xff1b;区块链技术…

计算机的硬件工作原理(图片部分资源摘自王道考研资料)

一、现代计算机的组成 此处主存和辅存可以理解为&#xff0c;内存和外存&#xff0c;内存的特点是读取速度快但是不利于保存大量数据&#xff0c;外存的特点 是读取速度慢&#xff0c;但是可以存储大量数据 计算机在开机时不会读取硬盘上的所有数据&#xff0c;开机时先读取的…

rstp协议和stp协议对比_3.TCP和UDP协议对比

TCP、UDP协议对比任务&#xff1a;掌握TCP协议、UDP协议的作用&#xff1b;TCP的三次握手和四次挥手&#xff1b;RST断开连接过程和作用。1.TCPTCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议&#xff0c;由IETF的RFC …

计算机组成原理-数据的表示和运算(图片资源摘自王道考研资料)

一、进位计数制 二、BCD码 此处&#xff1a; 58 0101 1000 1101 超出数据能表达的范围&#xff0c;因为 8421码只能表示0-9 十以上数据视为无效数据&#xff0c;因此在此基础上加六&#xff0c;进行校正--> 11010110 0001 0011 ----拆成两个看

lacp可以在access接口吗_现网必用的链路冗余技术,静态LACP链路捆绑,两分钟快速掌握...

一、链路聚合链路聚合(Link Aggregation)是将—组物理接口捆绑在一起作为一个逻辑接口来增加带宽的一种方法&#xff0c;又称为多接口负载均衡组(Load Sharing Group)或链路聚合组(Link Aggregation Group)1、配置手工负载分担模式链路聚合手工负载分担模式下&#xff0c;Eth-T…

Spring 集成web环境

Spring 集成web环境 一、配置ContextLoaderListener 监听器 1.maven坐标 org.springframework spring-web 5.3.14 2.web.xml <context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</para…

一只青蛙跳向三个台阶_8. 跳台阶

一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。1. 思路&#xff1a;若只有一级台阶&#xff1a;一种跳法两级台阶&#xff1a;两种跳法(11 / 2)三级台阶&#xff1a;三种跳法(111 / 12 / 21)四级台阶&#xff1a;五种跳法…

spring 框架(一)

目录 一、spring简介 二、spring入门 三、spring配置文件 3.1.bean标签的基本配置(applicationContext.xml) 3.2Bean&#xff08;scope:指对象的作用范围&#xff09;标签范围配置 3.3 Bean生命周期配置 3.4 Bean实例化三种方式 3.5 Bean的依赖注入入门 3.6 Bean的依赖…

cdr添加节点快捷键_CDR快捷键分享,需要的赶紧收藏!

点击上方蓝字&#xff0c;关注我们哦&#xff01;&#xff01;有粉丝在后台留言说&#xff0c;希望我分享一下CDR的快捷键&#xff0c;今天我整理了一下快捷键。来源&#xff1a;内容整理自网络&#xff0c;仅供学习交流一工具箱I 绘制曲线&#xff0c;并对笔划使用预置、画刷、…

spring 框架(二)

目录 一、Spring配置数据源 1.1 数据源(连接池)的作用 1.2数据源的使用 1.3基本实现 1.4.抽取配置文件&#xff0c;降低耦合性(druid) 1.4.1抽取jdbc.properties文件 1.4.2设置数据源的基本连接数据&#xff0c;通过applicationContext.xml设置数据库参数applicationCon…

matplotlib 对称图_Python 绘图,我只用 Matplotlib

散点图散点图显示两组数据的值&#xff0c;如图1-1所示。每个点的坐标位置由变量的值决定&#xff0c;并由一组不连接的点完成&#xff0c;用于观察两种变量的相关性。例如&#xff0c;身高—体重、温度—维度。图1-1 散点图示例使用Matplotlib的scatter()函数绘制散点图&#…

spring框架(三)mvc

目录 1.1准备测试数据 1.2 ApplicationContext应用上下文获取方式 1.2.1添加listener包 1.2.2解耦配置文件 1.2.3 继续提取ContextLoaderListener.java中参数app 1.2.4 Spring提供获取应用上下文的工具 二、SpringMVC 2.1概述 2.2数据准备 2.3添加success.jsp页面 2.4 …

python判断字符串中包含某个字符串_干货分享| Python中最常用的字符串方法

字符串是字符序列。Python中内置的string类代表基于Unicode国际字符集的字符串。除了Python中常见的操作外,字符串还有一些专属于它们的附加方法。下图显示了所有这些可用的方法: Python中的内置字符串函数 在本文中,我们将学习一些最常用的方法。这里需要注意的重要一点是,…