最近发现邮件发送服务还是挺重要的。可能对于每天只有一百来封的邮件发送需求的个人博主来说,一个免费的邮箱提供的免费SMTP邮件发送服务就可以满足了,但是对于一些大型的网站、论坛和平台,每天的邮件发送量可以达到上万封以上,免费的邮件发送服务是不能满足需要了。

市场上已经有了不少的付费邮件发送服务,但是终归是第三方的邮件发送服务,在邮件发送方式、邮件内容等方面肯定要受到不少的限制。与其花大量的时间寻找更好的付费邮件服务,还不如自己动手利用VPS或者服务器搭建一个属于自己的邮件发送平台,搭建起来并不复杂,使用起来很方便。

本文就来分享一下用Postfix,Cyrus-IMAP,Cyrus-sasl,Dovecot和SPF搭建邮件系统的过程。Postfix是Wietse Venema在IBM的GPL协议之下开发的MTA开源软件,可以用来代替sendmail,特点是免费、灵活、快速和兼容性好,可以承担大量的邮件发送任务。

Cyrus-IMAP和Cyrus-sasl是两个用来提供pop和imap服务,功能和Dovecot 一样,都是开源的IMAP 和POP3邮件服务器。SPF是反垃圾组件,主要的作用就是通过SPF让别人验证自己,域名添加txt记录,向支持SPF功能的邮件服务器提供验证信息。同时验证别人,配置邮件服务器支持 SPF,对每封进入的邮件进行SPF验证。

经典的邮件系统搭建一般是:postfix(作为发送邮件服务器)+Cyrus-IMAP和Cyrus-sasl或者dovecot(作为接收邮件服务器)+mysql(作为数据库)+ SPF反垃圾验证。当然有人可能还要求有Webmail,有了Webmail界面就能像企业邮局那样在线管理邮件了。

如果暂时不想折腾一个邮件服务器,也可以使用第三方的邮件发送服务,这些邮件发送服务提供了丰富了API接口与开发服务,不少的公司和企业都是用它们完成自己每月上百万封的邮件发送服务请求:

  • 1、亚马逊:免费超大量邮件发送服务Amazon SES和Mailgun提供SMTP和API支持
  • 2、SMTP:免费SMTP邮件服务:Mandrill,Sendgrid,Mailjet,Postmarkapp,MailChimp
  • 3、个人邮箱:各大免费邮箱邮件群发账户SMTP服务器配置及SMTP发送量限制情况

Postfix邮件系统安装与配置:Postfix,Cyrus-IMAP,Cyrus-sasl,Dovecot和SPF

一、Postfix,Cyrus-IMAP,Cyrus-sasl 安装

1、CentOS上执行命令:


yum install postfix
yum install cyrus*

2、删除系统自带的Sendmail。


rpm -e sendmail
或者
yum remove sendmail

3、修改MTA(默认邮件传输代理)


alternatives --config mta

4、按下回车键保存当前选择,或者输入数字设置默认。

5、也可以直接输入命令:


/usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix

6、检查一下是不是已经设置成功了。


alternatives --display mta

二、Postfix配置

1、Postfix的配置文件是main.cf,路径是:/etc/postfix/main.cf。

2、用文本编辑器打开它进行相应的修改,建议将这个文件下载到本地使用Notepad++等常用的代码编辑器修改。

3、主要是将下面的代码前的#号去掉,如果没有则直接手动添加(用 hostname 可以查看本机主机名)。


myhostname = localhost  //76行,改成本机名称
mydomain = freehao123.com   //82行,设置域名
myorigin = $mydomain   //97行,去掉注释
inet_interfaces = all  //112行,去掉注释
mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain //163行,去掉注释
mynetworks = 192.168.0.0/24, 127.0.0.0/8  //263行,设置内网和本地IP
local_recipient_maps =  //209行,去掉注释
smtpd_banner = $myhostname ESMTP unknow //568行,去掉注释,然后把$mail_name ($mail_version)改成unknow//在main.cf文件的底部加上以下内容
smtpd_sasl_auth_enable = yes     //使用SMTP认证
broken_sasl_auth_clients = yes   //让不支持RFC2554的smtpclient也可以跟postfix做交互。
smtpd_sasl_local_domain = $myhostname  // 指定SMTP认证的本地域名
smtpd_sasl_security_options = noanonymous //取消匿名登陆方式
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination //设定邮件中有关收件人部分的限制
smtpd_sasl_security_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination //设置允许范围
message_size_limit = 15728640     //邮件大小
mailbox_transport=lmtp:unix:/var/lib/imap/socket/lmtp   //设置连接cyrus-imapd的路径

三、Cyrus-IMAP,Cyrus-sasl 配置

1、Cyrus-sasl 配置,编辑:vim /etc/sasl2/smtpd.conf (注意:如果是32位的CentOS,应该是:vim /usr/lib/sasl2/smtpd.conf ),加入以下代码,主要是设置记录Log模式,设置smtp寻找cyrus-sasl的路径。


log_level: 3
saslauthd_path:/var/run/saslauthd/mux

2、cyrus-imapd的主要配置文件有:/etc/sysconfig/cyrus-imapd,/etc/cyrus.conf,/etc/imapd.conf。imapd.conf还包含非常多的参数,例如邮件存储目录、管理员账号、连接认证方式等等,具体的需要参考官网。

四、启动Postfix,Cyrus-IMAP,Cyrus-sasl

1、 执行以下命令启动Postfix,Cyrus-IMAP,Cyrus-sasl  :


/etc/init.d/postfix start
/etc/init.d/saslauthd start
/etc/init.d/cyrus-imapd start

2、执行命令:netstat -tpnl |grep smtpd ,可以查看端口是否正常打开 。执行命令:service postfix status 可以查看Postfix状态。以下命令可以设置开机启动:


chkconfig postfix on
chkconfig cyrus-imapd on

3、检测Cyrus-sasl  。先设置一下cyrus密码,命令:passwd cyrus  ,然后使用命令:testsaslauthd -u cyrus -p '123546' 来测试SMTP是否正常。

4、检测cyrus-imapd,并创建新的邮件账号。命令:id cyrus是用来查看cyrus管理员账号的,默认的就是cyrus。创建邮件账号命令:


cyradm -u cyrus localhost (32位)
cyradm -u cyrus localhost --auth plain (64位)
cm freehao123 (新建)
lm (显示)
quit (退出)

5、 生成的邮件目录是放在/var/spool/imap中,以目录形式存放。查看:ls /var/spool/imap/  ,目录名是用户名的首字母。

五、Dovecot安装与配置

1、需要说明的是Dovecot和Cyrus-IMAP,Cyrus-sasl只需要选择其中一项即可,否则会出现端口被占用无法启用的情况,执行命令安装:

yum -y install dovecot

2、 编辑Dovecot的配置文件:/etc/dovecot/dovecot.conf,主要是设置protocols = imap pop3,default_mail_env = maildir:~/Maildir是设置邮件目录,新版的配置文件中如果被注释,直接去掉#号。

3、在/etc/postfix/main.cf 配置中除了按照上面的方法进行相应的修改外,还记得加上:


smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

4、然后加入以下配置文件:


auth default {
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}}
mechanisms = plain login
}

4、启动dovecot:/etc/rc.d/init.d/dovecot start,重启dovecot:/etc/init.d/dovecot restart,将dovecot设置为开机启动:chkconfig dovecot on 。

六、Postfix邮件系统使用

1、 要想使用Postfix邮件系统,你需要先把邮件系统的域名解析到服务器上,添加一个别名Mail,记录值指向服务器IP,例如:mail.zhujis.com

2、将域名的MX设置为:mail.zhujis.com

3、待域名DNS生效后,你就可以用Linux自带的Mail来发一封测试邮件:mail -s 'I am Freehao123' 798558110@qq.com  < /etc/imapd.conf

4、这是QQ邮箱收到了Postfix邮件系统发来的邮件。

5、如果CentOS没有安装中文字体,会出现邮件乱码。

6、执行命令:cat /var/log/maillog  可以查看Postfix收发邮件记录。

七、为Postfix邮件系统安装SPF

1、执行以下命令给Postfix邮件系统安装SPF:


wget https://launchpad.net/postfix-policyd-spf-perl/trunk/release2.010/+download/postfix-policyd-spf-perl-2.010.tar.gz
perl -MCPAN -e 'install version'
perl -MCPAN -e 'install NetAddr::IP'
perl -MCPAN -e 'install Mail::SPF'
perl -MCPAN -e 'install Sys::Hostname::Long'
tar zxvf postfix-policyd-spf-perl-2.010.tar.gz
cd postfix-policyd-spf-perl-2.010
cp postfix-policyd-spf-perl /usr/libexec/postfix/policyd-spf-perl

2、如果出现错误,可能是Perl没有安装完整,执行以下命令安装:


wget http://cpan.communilink.net/authors/id/A/AN/ANDK/CPAN-1.9600.tar.gz
tar -zxvf CPAN-1.9600.tar.gz
cd CPAN-1.9600
perl Makefile.PL
make
make install

3、编辑SPF的配置文件:/etc/postfix/master.cf,加入以下内容


policy  unix  -       n       n       -       0       spawn
user=nobody argv=/usr/local/postfix/libexec/postfix-policyd-spf-perl

4、然后再编辑Poxtfix配置文件,添加以下内容(如果已经有了,去掉前面的注释号)。


smtpd_recipient_restrictions =reject_unauth_destination,check_policy_service unix:private/policy

5、最后重新载入 postfix 服务:postfix reload

八、postfix邮件系统小结

1、postfix邮件系统可以用来替代sendmail发送邮件,如果你不想使用Pop和Imap服务,可以只安装postfix,并将其设置为默认的发邮件服务,这样服务器在发邮件时就是通过postfix了。

2、postfix邮件系统配合maildorp、extmail、extman等就要可以搭建一个企业邮局了,如果再配合好SPF反垃圾邮件策略,就可以满足日常大量的邮件收发任务了,且供多人同时使用。

文章出自:免费资源部落 文章中部分代码参考blog.51yip.com博客。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

Postfix邮件系统安装与配置:Postfix,Cyrus-IMAP,Cyrus-sasl,Dovecot和SPF相关推荐

  1. 安装postfix邮件服务器,简易安装postfix邮件服务器

    [IT168 服务器学院]postfix邮件服务器(debian sarge) 1.简要说明 简易安装postfix邮件服务器 2.1.mail:~#apt-get install postfix 安 ...

  2. CentOS 5.8 Zimbra邮件系统安装与配置

    一.系统环境 拓朴图: 系  统 域  名 服务器 客户端 CentOS 5.8_64bit mail.zimbra.org 10.10.10.254 10.10.10.110 二.基本配置 1.配置 ...

  3. Postfix邮件服务搭建

    最近发现邮件发送服务还是挺重要的.可能对于每天只有一百来封的邮件发送需求的个人博主来说,一个免费的邮箱提供的免费SMTP邮件发送服务就可以满足了,但是对于一些大型的网站.论坛和平台,每天的邮件发送量可 ...

  4. Linux笔记19.postfix邮件服务器配置安装

    19.postfix邮件服务器配置安装 安装postfix 1.修改主机名 hostname mail.yang.com 改临时主机名 vim /etc/sysconfig/network 改主机名 ...

  5. postfix邮件服务器搭建02-安装篇

    本文接着上文的环境,进行postfix邮件发信端和dovecot邮件收信端的部署,之后部署基于浏览器的extmail图形管理端,使管理员可以通过网页对邮件虚拟用户进行管理,对邮件服务器进行管控 1.p ...

  6. Linux搭建Postfix邮件服务器

    第一章:实验环境和目标 1.实验环境 Vm虚拟机安装CentOs7系统 CentOs7的IP地址:192.168.81.133 Win7客户端(测试用),有Xshell或者SecureCRT工具 2. ...

  7. Linux中搭建 Postfix 邮件服务器

    搭建背景:公司决定搭建邮件服务器,实现内部和外部交流的电子化,因为Linux系统稳定.安全性较好,该公司决定在Linux系统中搭建postfix邮件服务器,邮件服务器mail.pengqi.com能够 ...

  8. Linux下安装配置Postfix邮件服务器

    文章目录 一.设置域名 二.搭建DNS环境域名解析,用于解析postfix地址 三.安装postfix服务器并进行配置 四.安装配置dovecot 五.测试 1.**使用mail命令进行简单测试** ...

  9. pop3 postfix 命令_postfix+pop3+imap+cyrus

    1.安装postfix软件包 2.安装smtp认证包 3.安装pop3和imap服务包 4.安装webmail软件包(webmail需要web服务器的支持) Postfix 一.Postfix邮件服务 ...

最新文章

  1. 微信小程序无法获取UnionId的情况及处理
  2. PHP实现四种排序-插入排序
  3. 【虚拟化实战】存储设计之七Block Size
  4. SpringBoot高级-消息-@RabbitListener@EnableRabbit
  5. 锁 mysql_Mysql的锁(S锁和X锁的区别)
  6. c++ std 方法 取两个数的较大_【数据结构C++】两数交换(4种方法)
  7. C++11 随机数生成
  8. 【caffe】 Check failed: error == cudaSuccess (30 vs. 0) unknown error
  9. CG Rendering v.s. Browser Rendering
  10. easyui datalist 不显示数据_爬虫练习——豆瓣电影信息爬取及数据可视化
  11. 泛函分析 06.03 线性算子的谱理论 - 有界自共轭线性算子的谱
  12. Unity-Xlua
  13. 如果你的下属不服从你得管理,你会怎么办?
  14. 计算机专业权威期刊投稿经验总结
  15. 用iPad开发iPhone App,苹果发布Swift Playgrounds 4
  16. docker安装和入门教程
  17. python中sklearn实现决策树及模型评估_Python sklearn决策树算法实践
  18. SQL Server向上取整、向下取整、四舍五入解析说明
  19. 线程的状态 - Java
  20. 基于上下文感知计算的APT攻击组织追踪方法

热门文章

  1. newifi3 web认证_关于wifi portal认证--为浏览器添加wifi认证功能
  2. android华为推送不显示角标,V6项目集成华为推送流程和角标显示处理
  3. redis缓存数据清理
  4. HTML+CSS_第三部分(Flex弹性盒子布局、grid网格布局、移动端、移动端流式布局、移动端rem布局、响应式布局、Bootstrap框架)
  5. opencv定位十字交叉点(python)
  6. 第三方支付平台是什么意思?
  7. Matlab求解方程组
  8. lvgl image
  9. 【SQL】部门工资最高的员工
  10. 中间件 - metaQ