邮件语言:M4
SASL: v2
cyrus-sasl 认证框架
courier-authlib
MTA: 邮件传输代理,SMTP服务器
sendmail, UUCP
qmail
数学家当程序员,他写的算法绝对是一流的
postfix
安全、兼容、效率高
exim
Exchange (异步消息协作平台) 重量级
MDA: 邮件投递代理
procmail
maildrop
MRA: 邮件检索代理(pop3, imap4)
cyrus-imap
dovecot
MUA: 邮件用户代理
Outlook Express, Outlook
Foxmail
Thunderbird
Evolution
mutt (文本界面)
Webmail:
Openwebmail
squirrelmail
Extmail(Extman 管理界面)商业软件,也有免费版
EMOS, CentOS
eg:
sendmail
部署前基本知识了解
必须了解localhost.localdomain 21:45:48 root@test[10.0.2.81/24]:~
本机hosts-------->resolv.conf-------->公网(万网)
vim /etc/hosts
vim /etc/resolv.conf
hostname +主机名
/etc/sysconfig/network HOSTNAME=localhost.localdomain
user
group
###已有DNS服务器并在映射到邮件服务器的域名配置文件中进行A记录和MX记录的设置
列如:
@IN MX 5 mail.test.com.
mail IN A 192.168.1.2
如果有用DNS 那么DNS 的MX 要把mail加上,如果内网主机调用就不要暴露在公网上了,这样解决了安全同时在发送速度上也有所提升
sendmail是Linux下优秀的邮件系统。在不做任何设定的情况下,sendmail发出邮件的邮箱源地址形如userid@localhost.localdomain,这种地址几乎会被所有的邮箱认定为SPAM(垃圾邮件)或直接拒收 ……
SMTP:Simple Mail Transfer Protocol/简单邮件传送协议
在互联网络时代干什么都是离不开协议的,邮件服务自然更不能例外;定义邮件传送,基于TCP服务的应用层, 明文传送,SMTP协议使用25端口;在发信的时候MUA会主动连接MTA的25端口,然后将信由MTA的SMTP协议发送出去,而邮件主机MTA在传递的时候,也是经由MTA的25端口来将信送出去。
sendmail命令网络服务器 sendmail命令是一款著名的电子邮件传送代理程序,也就是平常说的电子邮件服务器,它基于标准的简单邮件传输协议(SMTP)。
语法 sendmail(选项)
选项
-bd: 以守护进程方式运行指令;
-bD: 以前台运行方式运行;
-bi: 初始化别名数据库;
-bm: 以常规发送电子邮件;
-bp: 显示邮件的发送队列;
-C: 指定配置文件;
-D: 将调试的输出信息保存到日志文件,而不显示在标准输出设备上;
-F: 指定邮件发送者全名;
-n: 禁止使用邮件别名功能;
-f: 指定发件人的名字;
-q: 设置处理邮件队列中邮件的时间间隔。
Linux系统配置sendmail服务的步骤如下:
1.检查Send Mail 的安装包
[root@sql root]# rpm -qa | grep sendmail
sendmail-8.12.8-4
sendmail-cf-8.12.8-4
[root@sql root]# rpm -qa | grep m4
m4-1.4.1-13
[root@sql root]# rpm -q mailx
mailx-8.1.1-28
2. Sendmail安装
# yum install -y sendmail
# yum install -y sendmail-cf
3. 配置相关参数
#cd /etc/mail
a)设置mail的服务地址
vi sendmail.mc
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
修改为
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
b)设置smtp用户认证方式
# vi /etc/mail/sendmail.mc
dnl TRUST_AUTH_MECH(`EXTERNALDIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNALGSSAPIDIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
修改为
TRUST_AUTH_MECH(`EXTERNALDIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNALGSSAPIDIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
修改LOCAL_DOMAIN(`localhost.domain')dnl 为sdlp.com域名
LOCAL_DOMAIN(`sdlp.com')dnl
c)设置提供邮件服务的域名
# vi /etc/mail/local-host-names
添加邮件服务器提供邮件服务的域名
sdlp.com
修改submit.cf文件
#vi /etc/mail/submit.cf,找到行 #Dj$w.Foo.COM,修改为Djsunchis.com
修改完主配置文件sendmail.mc后生产新的sendmail.cf文件
#m4 sendmail.mc> sendmail.cf
查看电子邮件队列信息:
# sendmail -bp
----------------------------
/var/spool/mqueue(1 requests)
-----Q-ID-------Size-- -----Q-Time----- ------------Sender/Recipient-----------
p6C71EPC02035910 Tue Mar 19 14:02
(host map:lookup (gmail.com): deferred)
Total requests:1
----------------------------
出现了"host map: lookup (domain): deferred"错误,意思就是说邮件的发送被延迟了。
解决办法很简单:
# vim/etc/mail/sendmail.cf
找到 #O ResolverOptions=+AAONLY 这一行信息,并把它的注释去掉。
#/etc/init.d/sendmail restart
重启sendmail以后即可成功发送邮件。
d)设定邮件服务器的权限
#/etc/mail/access
# vi /etc/mail/access
#预设情况下有启用的 IP
localhost.localdomain RELAY
localhost. RELAY
127.0.0.1 RELAY
#想要开放权限的IP与网域
192.168.18.1 RELAY
140.116.44.125 RELAY
#挡掉的IP、主机名称与E-mail
qq.com DISCARD
192.168.1.100 DISCARD
xxx@xxx.domain.name REJECT
#储存后离开
# cd /etc/mail/
# makemap hashaccess.db < access
e)设定使用者别名/etc/aliases
mail: root
执行命令: newaliases
创建帐号可以用useradd添加,然后加到mail 组里面
Linux 中开设 E-Mail 帐号十分简单,只要在 Linux 系统中新增一个用户即可。该用户帐号和密码就是E-Mail 的帐号和密码。
4. 配置相关参数
service sendmail start
5. 查看日志
tail -f /var/log/maillog 确认系统正常启动
检测解析
使用nslookup检测MX记录是否能正确解析到邮件服务器
# nslookup
> set q=mx
> sunchis.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
sunchis.com mail exchanger = 10 mail.sunchis.com.
Authoritative answers can be found from:
>
测试发件方法
telnet mail.qizhongzc.com 25
ehlo www.baidu.com 或helo #通报来访者地址
mail from :kf@ qizhongzc.com #发件人地址
rcpt to :lnredone@126.com #收件人地址
data #输入正文内容
it's test! #正文内容
. #句号的圆点表示写信结束的意思
quit #退出
邮件服务器解决方案:
Postfix + SASL (courier-authlib 实现虚拟用户) + MySQL 【发邮件服务器】
Dovecot + MySQL 【收邮件服务器】
Extmail + Extman + httpd 【webmail】
postfix rpm包,不支持虚拟用户!需要通过源码编译安装
转载于:https://blog.51cto.com/redone/1894207