邮件发送过程:


搭建Mail服务器--Sendmail _ linux 

1、你的信件通过smtp协议传送到你的邮件服务器。

2、然后邮件服务器判断是否有转信主机,如果有转信主机,则将信件发送到转信主机上,如果没有转信主机,则直接发送到目的邮件服务器上。

3、收件者通过pop-3协议,将信件从邮件服务器上拿下来

名词介绍:

MUA(Mail User Agent):照字面上来讲就是邮件代理人,MUA是给使用者浏览邮件和书写邮件的程序。

MTA(Mail Transfer Agent):照字面上来讲就是邮件传送代理人,也叫邮件服务器。负责MUA请求,也负责将邮件从一个MTA传送到另外一个MTA。

MTA支持的几个传输协议:UUCP,SMTP,POP。

SMTP协议:负责将邮件从MUA上传到MTA上,以及MTA之间的邮件传递协议。

POP协议:使用者可以从MUA将MTA上的信件下载下来浏览


整体协议的流程:我们用 MUA 撰写邮件之后,是通过 SMTP 协议上传给 MTA 的;而阅读邮件则是通过 POP 从 MTA 那里下载回来。



搭建邮件服务器之SendMail


SendMail 的主配置文件

/etc/mail/sendmail.cf:核心配置文件

/etc/mail/sendmail.mc:模版文件,定义了定义了操作系统类型、文件位置、请求特征及邮件发送工具、用户列表等信息。通过m4程序将模版文件的参数导入核心配置文件sendmail.cf,降低配置文件的难度。

/etc/mail/local-host-name:本地主机和域名列表

/etc/mail/access:完成中继转发功能,允许访问的域名



搭建服务器流程

1、配置域名,添加MX邮件交换记录,并通过nslookup命令测试邮箱域名是否正确解析。


2、安装sendmail,安装完毕后查询正确安装了(rpm -qa | grep sendmail)

3、对配置文件和模版文件做备份(cp sendmail.cf sendmail.cf.bak /root/ && cp sendmail.mc /root/)

4、修改配置文件

4.1、启用sendmail的认证功能

修改sendmail.mc模版文件(/etc/mail/sendmail.mc)
搭建Mail服务器--Sendmail _ linux_02

将前面的dnl去掉,改为不注释

搭建Mail服务器--Sendmail _ linux_03

修改Addr=127.0.0.1改为0.0.0.0 ,或者将这行注释掉
搭建Mail服务器--Sendmail _sendmail_04

修改成本地邮箱的域名

4.2、修改access数据库(/etc/mail/access)


搭建Mail服务器--Sendmail _ linux_05

设置接收和发送的网段

设置接收和发送的域名

4.3、修改接收邮件服务的配置文件(/etc/dovecot/dovecot.conf)
搭建Mail服务器--Sendmail _sendmail_06


将protocols前面的#号去掉(这行关系到邮箱服务器是否能接收外网的邮件)

5、将模版文件的内容写入核心配置文件中,以及将access中的数据写入access.db中

利用m4程序(m4 sendmail.mc > sendmail.cf)

利用makemap命令进行数据库更新(makemap access.db < access)


使用sendmail发送邮件时,指定自己的域名发送邮件(即显示发件人是自己邮箱地址的域名)


1、首先修改自己主机名,主机名和sendmail发送邮件有关,

修改/etc/hosts 文件
搭建Mail服务器--Sendmail _sendmail_07

修改/etc/sysconfig/network文件(永久修改主机名)

搭建Mail服务器--Sendmail _ linux_08

最后如果想要临时生效修改的主机名的话,还可以通过hostname gongjingyi.club。否则想要修改过的主机名生效的话就要重启服务器。



Sendmail发送中文邮件失败解决方法


1、首先查看是否存在中文语言包

Locale -a | grep zh
搭建Mail服务器--Sendmail _ linux_09



2、不存在的话安装中文语言包,存在的话,修改系统语言变量

临时修改语言变量,export.utf8

(需要永久修改语言变量的话,修改/etc/locale.conf文件,改成LANG=zh_CN.utf8)


然后查询是否修改成功,locale | grep LANG

搭建Mail服务器--Sendmail _sendmail_10

3、测试是否能够发送中文邮件


搭建Mail服务器--Sendmail _sendmail_11


搭建Mail服务器--Sendmail _ linux_12

测试成功!主机名和中文都显示正常