RHEL5系统 sendmail+qpopper 架设简易邮件服务器
转自 “小蜗牛技术之家” 博客 原稿: http://snailwarrior.blog.51cto.com/680306/139098
【小蜗牛奋力之作 】
目标:在RHEL5系统架设简易邮件服务器,包括SMTP服务、POP3服务,发信支持SMTP验证。然后使用客户端(比如Foxmail,Outlook)连接,进行邮件收发。
【注意】此文档的内容不一定说得正确,欢迎大家指正!小蜗牛十分感谢!
Sendmail 入门配置
===================================================
[root@pps ~]# rpm -qa | grep sendmail
sendmail-8.13.8-2.el5
[root@pps ~]# service sendmail status
sendmail (pid 3944 3935) 正在运行...
[root@pps ~]# service sendmail stop
关闭 sm-client: [确定]
关闭 sendmail: [确定]
[root@pps ~]# service sendmail start
启动 sendmail: [确定]
启动 sm-client: [确定]
【小贴士】--------------------------------------------------------------【小贴士】
可以telnet检查一下sendmail服务是否真的启动了:
[root@pps ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 pps.hoho.com ESMTP Sendmail 8.13.8/8.13.8; Sat, 14 Mar 2009 00:22:53 +0800
quit
221 2.0.0 pps.hoho.com closing connection
Connection closed by foreign host.
其实用telnet命令可以测试连接其它端口,检测端口是否打开(即提供服务),比如检测80或者8080等,如果端口打开了就会有信息返回提示,即使是连接被blocked的信息,否则就会出现连接被拒的情况(Connection refused)。
2、简单配置sendmail
当sendmail服务启动的时候,就可以使用mail工具给系统内别的用户发邮件(信息),或者给外界发邮件了,如果目标email系统不做什么反垃圾检查、IP过滤的话,一般能收到的。
(1)sendmail的主配置文件 /etc/mail/sendmail.cf
这个配置文件差不多有2000行,有点恐怖,不过我们需要做的修改并不多,先入门嘛。我修改的几个地方如下:
# SMTP daemon options
# O DaemonPortOptions=Addr=127.0.0.1,Port=smtp,Name=MTA
O DaemonPortOptions=Port=smtp,Name=HoHo'MTA
O DaemonPortOptions=Addr=127.0.0.1,Addr=192.168.32.50,Port=smtp,Name=MTA
(有本事你就写上一个公网IP,哈哈)
Cwlocalhost
# file containing names of hosts for which we receive email
Fw/etc/mail/local-host-names
Cwlocalhost hoho.com pps.hoho.com
或者在 local-host-names 文件里:
[root@pps mail]# cat /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
hoho.com
pps.hoho.com
[root@pps mail]# nslookup bbs.hoho.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: pps.hoho.com
Address: 192.168.32.50
[root@pps mail]# nslookup bbs.hoho.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Address: 192.168.32.50
(2)sendmail的访问限制配置文件 /etc/mail/access
[root@pps mail]# cat access
# Check the /usr/share/doc/sendmail/README.cf file for a de.ion
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
# 这一行是我添加的
Connect:192.168.32 RELAY
[root@pps mail]# makemap hash access.db < access
【小贴士】--------------------------------------------------------------【小贴士】
hoho.com RELAY //允许hoho.com域内用户发送
192.168.32 RELAY //允许192.168.32.0/24网段发送
hoho@163.com RELAY //允许特定邮件地址
snailwarrior@ RELAY //允许特定用户发送
OK 无条件接受或发送
RELAY 允许SMTP代理投递
REJECT 拒绝接受并发送错误消息
DISCARD 丢弃邮件,不发送错误消息
(3)sendmail设置SMTP验证
【注意】如果做了SMTP验证,上述/etc/mail/access的限制还是起作用的,即使SMTP验证通过,但是在access里限制客户端不能访问,则客户端还是无法发信。
[root@pps mail]# rpm -qa | grep sasl
cyrus-sasl-lib-2.1.22-4
cyrus-sasl-plain-2.1.22-4
cyrus-sasl-2.1.22-4
[root@pps ~]# cat /usr/lib/sasl2/Sendmail.conf
pwcheck_method:saslauthd
把以下两行前面的 dnl 去掉:
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
添加以下一行:
DAEMON_OPTIONS(`Port=smtp,Name=MSA, M=Ea')dnl
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
[root@pps mail]# m4 sendmail.mc > sendmail.cf
sendmail.mc:10: m4: cannot open `/usr/share/sendmail-cf/m4/cf.m4': No such file or directory
[root@pps ~]# service saslauthd start
[root@pps ~]# service sendmail restart
使用Telnet检查SMTP验证是否生效了:
[root@pps mail]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 pps.hoho.com ESMTP Sendmail 8.13.8/8.13.8; Sun, 15 Mar 2009 14:47:10 +0800
ehlo localhost
250-pps.hoho.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-AUTH LOGIN PLAIN
250-DELIVERBY
250 HELP
quit
221 2.0.0 pps.hoho.com closing connection
Connection closed by foreign host.
OutlookExpress、Foxmail使用LOGIN认证方式。
[root@pps mail]# sendmail -d0.1 -bv root | grep SASL
NETUNIX NEWDB NIS PIPELINING SASLv2 SCANF SOCKETMAP STARTTLS
嘿嘿,可以看到我的 SASLv2 已经启用了。
(4)sendmail相关配置文件以及作用
/etc/mail/sendmail.cf Sendmail主配置文件
/etc/aliases Sendmail使用的别名文件(raw data)
/etc/mail/aliases.db 别名数据库(加快别名查找)
/etc/mail/helpfile 帮助文件
/var/log/mail/statistics 统计文件
/var/spool/mqueue/* 邮件队列临时文件
# 我在文件末尾添加自己想要群发的“用户群” allpeople
allpeople: mail_user_1,mail_user_2,mail_user_3,mail_user_4,mail_user_5
[root@pps etc]# newaliases 或者 sendmail -bi
allpeople就是一个邮件列表(maillist)!
root可以查看此文件检查邮件的投递情况。在这里也可以看到sendmail和下面讲述的POP3服务器Qpopper的启动相关信息。
/var/log/maillog日志记录如下:
Mar 14 23:27:38 pps sendmail[20861]: alias database /etc/aliases rebuilt by root
Mar 14 23:27:38 pps sendmail[20861]: /etc/aliases: 76 aliases, longest 10 bytes, 765 bytes total
Mar 14 23:27:39 pps sendmail[20866]: starting daemon (8.13.8): SMTP+queueing@01:00:00
Mar 14 23:27:40 pps sm-msp-queue[20877]: starting daemon (8.13.8): queueing@01:00:00
Qpopper 安装配置
===================================================
[url]ftp://ftp.qualcomm.com/eudora/servers/unix/popper/qpopper4.0.16.tar.gz[/url]
[root@pps software]# tar zxf qpopper4.0.16.tar.gz
[root@pps software]# cd qppoper
[root@pps qpopper4.0.16]# ./configure --enable-standalone
[root@pps qpopper4.0.16]# make
[root@pps qpopper4.0.16]# make install
[root@pps qpopper4.0.16]# ./configure --enable-standalone --enable-specialauth --enable-log-login
--enable-specialauth 使得支持RHEL5的用户密码shadow
--enable-log-login Qpopper记录成功登陆的认证。
运行Qpopper,我实际使用的运行参数如下:
[root@pps qpopper4.0.16]# popper -c -C -R -s -T180
-C 如果用户名带有域名,-C选项将“@域名”去掉,hoho@hoho.com变为hoho
-R 禁用对客户端IP反向DNS查询
-s 在日志中记录统计数据
-T 设置客户端的读取超时时间,默认120秒
-f config-file 从config-file读取额外的run-time选项
[root@pps mail]# killall popper
Mar 14 23:21:52 pps popper[14759]: popper: Server: cleaning up and exiting normally
Mar 14 23:25:02 pps popper[20740]: popper: Server: listening . 0.0.0.0:110
参考了一下资料,发现可以只添加邮件用户而实际上没有增加系统用户,以下命令不用理会警告信息:
[root@pps mail]# useradd mail_user_1 -g mail -d /dev/null -s /bin/false
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
先来看看mail用户的组别:
[root@pps ~]# cat /etc/passwd | grep mail
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
可见mail用户的GID为12
[root@pps ~]# cat mail_users.txt
mail_user_1:x::12::/dev/null:/sbin/nologin
mail_user_2:x::12::/dev/null:/sbin/nologin
mail_user_3:x::12::/dev/null:/sbin/nologin
mail_user_4:x::12::/dev/null:/sbin/nologin
mail_user_5:x::12::/dev/null:/sbin/nologin
【注意】必须严格按照/etc/passwd 的格式来书写
[root@pps ~]# newusers mail_users.txt
[root@pps ~]# cat /etc/passwd
...
mail_user_1:x:65535:12::/dev/null:/sbin/nologin
mail_user_2:x:65536:12::/dev/null:/sbin/nologin
mail_user_3:x:65537:12::/dev/null:/sbin/nologin
mail_user_4:x:65538:12::/dev/null:/sbin/nologin
mail_user_5:x:65539:12::/dev/null:/sbin/nologin
新建mail_users_passwd.txt内容如下:
[root@pps ~]# cat mail_users_passwd.txt
mail_user_1:135790
mail_user_2:135790
mail_user_3:135790
mail_user_4:135790
mail_user_5:135790
【注意】这里的格式也是固定的
[root@pps ~]# chpasswd < mail_users_passwd.txt
如果使用加密的方式修改密码,则需要使用 -e 参数,可以参考/etc/shadow文件创建密码。(我个人认为实在没有必要用加密方式批量修改用户密码,日后用户自己修改密码还得管理员来完成,我以后得想个办法来实现让用户自己修改POP3/SMTP密码。可以用数据库或者其它的验证方式)
Server: 127.0.0.1
Address: 127.0.0.1#53
hoho.com mail exchanger = 10 mx2.hoho.com.
hoho.com mail exchanger = 10 mx3.hoho.com.
hoho.com mail exchanger = 10 mail.hoho.com.
客户端SMTP/POP3设置
以我的机器为例,Foxmail、Outlook里,SMTP/POP3服务器都填写192.168.32.50
用户可以用 mail_user_1 或者用 mail_user_1@hoho.com 或者 mail_user_1@pps.hoho.com 都可以,密码当然就是135790了。
转载于:https://blog.51cto.com/haidi/1238976
RHEL5系统 sendmail+qpopper 架设简易邮件服务器相关推荐
- 利用Windows自带服务架设免费邮件服务器
在Windows Server 2003中带有完整的SMTP和POP3服务,并且能够支持有域和无域两种环境,非常便于中小型企业实施.今天,小编就以Windows Server 2003企业版为例带领大 ...
- 华硕路由器(RT-AC86U)架设简易git服务器
背景 我有多台设备, 而且不同平台, 在多台设备间倒腾代码, 直接复制很不方便. 于是有了搭一个简易家用级别的git服务器的想法. 目的 解决内部不同平台间倒腾代码不方便的问题 家用级轻量解决方案 ...
- 架设HmailServer邮件服务器以及webmail
参考:http://www.it0355.com/a/201207/31/a9275.htm 在安裝Hmailserver前先安裝Apache.php.mysql,如果你想懶點直接到http://ww ...
- winmail计算机三级,用 Win2003 架设邮件服务器 图文详解
其实我们可以通过Windows Server 2003提供的POP3服务和SMTP服务架设小型邮件服务器来满足我们的需要. 一.安装POP3和SMTP服务组件 Windows Server 2003默 ...
- 用Win 2003架设邮件服务器(转)
很多企业局域网内都架设了邮件服务器,用于进行公文发送和工作交流.但使用专业的企业邮件系统软件需要大量的资金投入,这对于很多企业来说是无法承受的.其实我们可以通过Windows Server 2003提 ...
- Imail 邮件服务器的SMTP配置与 .NET 下使用 System.Net.SmtpClient 发送邮件
前言 目前,各大门户均已推出了各自的邮件服务系统,且功能日益强大,如腾讯QMail:然而,作为一家公司的官方邮件,相信邮件地址里使用本公司的域名更具信服力(例如 c.com 以邮件使用 service ...
- windos server 2003 邮件服务器的搭建
2019独角兽企业重金招聘Python工程师标准>>> 很多企业局域网内都架设了邮件服务器,用于进行公文发送和工作交流.但使用专业的企业邮件系统软件需要大量的资金投入,这对于很多企业 ...
- 2003邮件服务器维护,Windows 2003邮件服务器配置指南
很多企业局域网内都架设了邮件服务器,用于进行公文发送和工作交流.但使用专业的企业邮件系统软件需要大量的资金投入,这对于很多企业来说是无法承受的.其实我们可以通过Windows Server 2003提 ...
- 邮件服务器要安装哪些组件,邮件服务器:安装POP3和SMTP服务组件步骤详解
很多企业局域网内都架设了邮件服务器,用于进行公文发送和工作交流.但使用专业的企业邮件系统软件需要大量的资金投入,这对于很多企业来说是无法承受的. 其实我们可以通过Windows Server 2003 ...
最新文章
- windows7/10开启客户端telnet命令解决“‘telnet‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。”
- MySQL练习题:常用函数
- 测试驱动开发 测试前移_测试驱动的开发可能看起来是工作的两倍-但无论如何您都应该这样做...
- 对于刷oj时因为scanf()出现wa而cin却AC的详解 【scanf() 和 cin 详解】
- NDK学习笔记-JNI的引用
- 只需要2个工具,百度云盘大文件就能用迅雷和IDM下载
- 傲游浏览器语言怎么切换 傲游浏览器语言切换方法简述
- git 添加公钥的命令
- 由一维数组表示的N维数组实现(C++)
- python32位系统下载_python 32位安装包
- FLask框架AJAX操作
- No MyBatis mapper was found in ‘[xx]‘ package. Please check your configuration.
- 计算入瞳、出瞳位置及孔径大小
- FPGA中usb-blaster驱动的安装
- uni-app 选择图片(chooseImage)
- javascript eval 函数作用
- Dev C++开发lib和dll
- 《Python编程:从入门到实践》配套资源 官方网站免费下载
- 随机邻域嵌入_诠释数据降维算法:一文讲尽t-分布邻域嵌入算法(t-SNE)如何有效利用-阿里云开发者社区...
- 【一笔画】问题 详解
热门文章
- Intellij-Idea使用小细节
- 文件系统中文件的最长(字符数)绝对路径 Longest Absolute File Path
- JDBC高级特性3--JNDI,连接池,分布式事务
- vmware虚拟机克隆后,启动网卡报错device eth0 does not seem to be present, delaying initialization...
- 如何调用系统的包安装自己的apk呢?
- 在Linux下用LVS和Ipvsadm做Web负载均衡
- [Hibernate]在VS2010中应用NHibernate 3.2与MySQL
- 《高性能Linux服务器构建实战》封面照出炉
- 读书笔记4:单例模式
- mysql--常用基础命令