postfix 邮件服务 也是基于sendmail (需要关闭或卸载sendmail)
postfix 是一个电子邮件服务器,它为了改良sendmail邮件服务器而产生的,并且它的配置文件比sendmail简单得多,配置相当容易。
postfix 作为发送邮件服务器

1、安装

yum install postfix

 postfix 检测版本;

postconf -d | grep mail_version
postconf 还有其他命令可以了解一下。

2、创建邮件专用账户 ( 为下面配置需要使用 );

groupadd -g 5000 wmail
useradd -g wmail -u 5000 -s /sbin/nologin wmail

/etc/passwd 查看:

3、创建 postfix 库

新安装mysql默认没有root密码 直接登录;

为 postfix 创建 email 库,设置任意远程账户或者限制为本机localhost访问;

便于实验使用 库名账户密码都为 postfix

mysql -u root -p
mysql> create database postfix default character set utf8 collate utf8_bin;
Query OK, row affected (0.00 sec) mysql> grant all on postfix.* to 'postfix'@'%' identified by 'postfix';
Query OK, rows affected (0.01 sec) mysql> FLUSH PRIVILEGES;

4、文件配置

postfix 的配置文件是 main.cf

配置示例参考:
[root@mail ~]# cat /etc/postfix/main.cf queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
inet_interfaces = all
inet_protocols = all myhostname = mail.wangxiaojing.com
mydomain = wangxiaojing.com
myorigin = $mydomain
# mydestination = $myhostname, localhost.$mydomain, localhost
mydestination =
mynetworks = 0.0.0.0/0
# 可以设置允许的网段访问
local_recipient_maps = unknown_local_recipient_reject_code =
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases debug_peer_level =
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.6./samples
readme_directory = /usr/share/doc/postfix-2.6./README_FILES #启用SMTP认证
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_type = dovecot
smtpd_sasl_security_options = noanonymous
smtpd_sasl_path = /var/spool/postfix/private/auth
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_sender_restrictions =
permit_mynetworks,
reject_sender_login_mismatch,
reject_authenticated_sender_login_mismatch,
reject_unauthenticated_sender_login_mismatch smtpd_sasl_application_name = smtpd
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_sasl_security_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_client_restrictions = permit_mynetworks,permit_sasl_authenticated #smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
#smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
#smtpd_use_tls = yes #启用虚拟用户
virtual_mailbox_base = /home/wmail/
# 前面创建的邮件专用账户
virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps virtual_alias_maps =
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf virtual_mailbox_maps =
proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf,
proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf virtual_uid_maps = static:
virtual_gid_maps = static:
virtual_transport = dovecot
dovecot_destination_recipient_limit =

master.cf  配置参考:

 在 master.cf 文件最后添加:

dovecot   unix  -       n       n       -       -       pipe
flags=DRhu user=wmail:wmail argv=/usr/libexec/dovecot/dovecot-lda -f ${sender} -d ${recipient}
# 注意空格 不要顶行 否则会报错。

5、启动检测:

/etc/init.d/postfix start
chkconfig postfix on
ss -tln (检测 SMTP 端口)

6、创建 数据库连接相关文件

mkdir /etc/postfix/sql/

  在 sql 目录下创建以下连接文件

# cat mysql_virtual_alias_domain_catchall_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = AND alias_domain.active='' # cat mysql_virtual_alias_domain_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u','@',alias_domain.target_domain) AND mailbox.active = AND alias_domain.active='' # cat mysql_virtual_alias_domain_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = AND alias_domain.active='' # cat mysql_virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '' # cat mysql_virtual_domains_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND active = '' # cat mysql_virtual_mailbox_limit_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT quota FROM mailbox WHERE username='%s' AND active = '' # cat mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = ''

7、测试 sasl 与 postfix 集成链接;

telnet mail.wangxiaojing.com 25

  测试输入 ehlo wangxiaojing.com 结果如下: 表示连接状态和服务状态正确

[root@mail~ ]# telnet mail.wangxiaojing.com
Trying 172.16.2.18...
Connected to mail.wangxiaojing.com.
Escape character is '^]'.
mail.wangxiaojing.com ESMTP Postfix
ehlo wangxiaojing.com
-mail.wangxiaojing.com
-PIPELINING
-SIZE
-VRFY
-ETRN
-AUTH PLAIN LOGIN CRAM-MD5
-AUTH=PLAIN LOGIN CRAM-MD5
-ENHANCEDSTATUSCODES
-8BITMIME
DSN
quit
2.0. Bye
Connection closed by foreign host.

8、邮件发送测试;(qq邮箱或者其他公网邮箱服务有可能会被当垃圾邮件屏蔽)

可以看 /var/log/maillog 日志信息查看。

发送邮件测试(格式)
链接 smtp 端口
发件服务 随机 admin@wangxiaojing.com
from 发送邮件
rcpt 方式发送
data 内容格式
. 邮件编辑结束
telnet mail.wangxiaojing.com
mail from:admin@wangxiaojing.com
rcpt to:@qq.com
data
note.
.
quit

测试发送

QQ 邮箱上查看:

Postfix 邮件服务 - postfix服务的更多相关文章

  1. <postfix邮件服务下mysql的升级>

    本片服务的环境的红帽的企业版6.5 的,6.3的测试可能会略有不一样,不过方法大致是一样的. 当前系统的postfix的版本为 postfix-2.6.6-2.2.el6_1.x86_64 我们要向使 ...

  2. postfix 邮件服务的安装及详解

    该实验系统:cetnos 6.5 sendmail:性能好,设置复杂,适合老手 qmail:体积小260+k ,模块化.需要做二次开发,适合对邮件性能有要求的 postfix:前身是sendmail, ...

  3. Linux服务器---邮件服务postfix安装

    安装postfix postfix是一个快速.易于管理.安全性高的邮件发送服务,可以配合dovecot实现一个完美的邮箱服务器. 1.安装postfix [root@localhost ~]# rpm ...

  4. Postfix 邮件服务 - PostfixAdmin

    PostfixAdmin 基于web的postfix邮件发送服务器的管理工具,可以直接管理postfix的虚拟域名和邮件用户,前提是这些数据是存储在mysql或者是PostgreSQL数据库中. Po ...

  5. 烂泥:Postfix邮件服务器搭建之软件安装与配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb Postfix邮件服务器的搭建需要使用到几个软件,分别是cyrus-sasl.postf ...

  6. Postfix邮件服务器搭建及配置

    一.邮件服务器(Mail Server)的传输协议 1.简单邮件传输协议(SMTP):Simple Mail Transger Protocol 2.扩展的简单邮件传输协议(ESMTP):Extend ...

  7. linux邮件服务器postfix配置实例

    linux邮件服务器postfix配置实例(超级详细!!!) 2013-03-13 13:30:21 标签:邮件服务器 linux 1. 系统安装:1)centos4.3 选上MAIL组件里的全部.2 ...

  8. centos7搭建postfix邮件服务器

    在使用qq等邮件服务器厂商提供的邮件服务后,发现他们的邮件发送数量是有限制的,随着公司的业务的需求下,我们需要搭建一个邮件服务器,邮件服务器可以帮助我们在一些提醒方面和消息推送方面起到帮助. 理论性语 ...

  9. 邮件服务器安装--Postfix + Dovecot + Squirrelmail--CentOS 6.4

    英文原文链接 : http://www.unixmen.com/install-postfix-mail-server-with-dovecot-and-squirrelmail-on-centos- ...

随机推荐

  1. BZOJ2199[Usaco2011 Jan]奶牛议会——2-SAT+tarjan缩点

    题目描述 由于对Farmer John的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会.议会以“每头牛 都可以获得自己想要的”为原则,建立了下面的投票系统: M只到场的奶牛 (1 <= M ...

  2. BZOJ2017[USACO 2009 Nov Silver 1.A Coin Game]——DP+博弈论

    题目描述 农夫约翰的奶牛喜欢玩硬币游戏,因此他发明了一种称为“Xoinc”的两人硬币游戏. 初始时,一个有N(5 <= N <= 2,000)枚硬币的堆栈放在地上,从堆顶数起的第I枚硬币的 ...

  3. 读取Properties文件以及中文乱码问题

    在java类中常见的读取Properties文件方式,是使用Properties.load(inputStream);的方式但是常常出现中文乱码问题,这就很尴尬了 public synchronize ...

  4. OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用

    解决方案:oracle 版本太低,请装11G或以上版本..

  5. MT【223】二次函数最大最小

    若函数$f(x)=ax^2+20x+14(a>0)$对任意实数$t$,在闭区间$[t-1,t+1]$上总存在两实数$x_1,x_2$,使得$|f(x_1)-f(x_2)|\ge8$成立,则实数$ ...

  6. 洛谷P2054 [AHOI2005]洗牌(扩展欧几里德)

    洛谷题目传送门 来个正常的有证明的题解 我们不好来表示某时刻某一个位置是哪一张牌,但我们可以表示某时刻某一张牌在哪个位置. 设数列\(\{a_{i_j}\}\)表示\(i\)号牌经过\(j\)次洗牌后 ...

  7. 自学Zabbix之路15.5 Zabbix数据库表结构简单解析-其他 表

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix之路15.5 Zabbix数据库表结构简单解析-其他 表  1. Actions表 ...

  8. Asp.net与office web apps的整合

    其实网上有关office web app的整合已经有相关的文章了,典型的是如何整合Office Web Apps至自己开发的系统(一) 和如何整合Office Web Apps至自己开发的系统(二), ...

  9. sql server 小技巧(1) 导入csv数据到sql server

    1. 右击 DataBaseName,选择 Tasks->Import Data 2. 选择数据源: Flat File Source , 选择一个csv文件 Advance: 选择所有的列,改 ...

  10. CodeChef题目选讲

    https://wenku.baidu.com/view/2445a0322f60ddccda38a023.html 关键点:不超过7条 根据咕咕原理,所以答案最少是N/7;(N小于49就暴力) 随机 ...