首页 > 代码库 > 邮件服务

邮件服务

邮件语言: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@qizhongzc[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.ltest.com.

    mail IN A                  192.168.1.2

如果有用DNS 那么DNS MX 要把mail加上,如果内网主机调用就不要暴露在公网上了,这样解决了安全同时在发送速度上也有所提升

 

sendmailLinux下优秀的邮件系统。在不做任何设定的情况下,sendmail发出邮件的邮箱源地址形如userid@localhost.localdo,这种地址几乎会被所有的邮箱认定为SPAM(垃圾邮件)或直接拒收 ……

sendmailLinux下优秀的邮件系统。在不做任何设定的情况下,sendmail发出邮件的邮箱源地址形如userid@localhost.localdo,这种地址几乎会被所有的邮箱认定为SPAM(垃圾邮件)或直接拒收。

 

SMTPSimple Mail Transfer Protocol/简单邮件传送协议

在互联网络时代干什么都是离不开协议的,邮件服务自然更不能例外;定义邮件传送,基于TCP服务的应用层, 明文传送,SMTP协议使用25端口;在发信的时候MUA会主动连接MTA25端口,然后将信由MTASMTP协议发送出去,而邮件主机MTA在传递的时候,也是经由MTA25端口来将信送出去。

 

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=smtpAddr=127.0.0.1 Name=MTA‘dnl

    修改为

DAEMON_OPTIONS`Port=smtpAddr=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记录是否能正确解析到邮件服务器

  1. # nslookup  

  2. > set q=mx 

  3. > sunchis.com 

  4. Server:         8.8.8.8 

  5. Address:        8.8.8.8#53 

  6. Non-authoritative answer: 

  7. sunchis.com  mail exchanger = 10 mail.sunchis.com.

  8.  Authoritative answers can be found from: 

  9.  >



测试发件方法

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包,不支持虚拟用户!需要通过源码编译安装


本文出自 “流星工作室” 博客,请务必保留此出处http://redone.blog.51cto.com/5382451/1894207

邮件服务