首页 > 代码库 > SMTP基本电子邮件发送协议原理

SMTP基本电子邮件发送协议原理


1.电子邮件发送    客户端发送给服务器端,postfix软件提供MTA,MDA.    MTA 提供SMTP服务,接受邮件(读取DNS的MX记录)--》保存MDA 传送邮件    MUA 用户代理
1-1服务器使用SMTP协议将电子邮件提交至TCP端口25,或由本地客户端通过
   /usr/bin/sendmail程序进行提交。如果该MTA是最终目标位置,邮件将传递至MDA。
   否则,将使用MX记录在DNS中查找下一个MTA,并使用SMTP进行转发。 1-2.MDA:“邮件发送代理”。MDA将邮件发送至收件人的本地邮件存储位置(默认情况下是
   /var/spool/mail/user)。Postfix提供自己的MDA,以发送至基于文件的本地默认邮件
   存储位置/usr/libexec/postfix/local. 1-3.转发:电子邮件服务器(MTA)将提交的邮件转发至另一个服务器,以进行发送 1-4.排队:失败的发送或转发尝试排队等待,并由MTA定义重试。(默认情况下,Postfix每小时
   执行此操作一次) 1-5.拒绝:在首次提交期间,电子邮件被电子邮件服务器拒绝 1-6.退回:远程服务器接受电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮件服
   务器和/或用户电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮件服务器和/
   或用户
2-1Postfix由postfix RPM包提供,并通过postfix服务脚本控制。它是一个由多个协同操作
   程序构成的模块化程序,它的组件由master进程控制。 2-2Postfix的主配置文件是/etc/postfix/main.cf,可以使用文本编辑器或postconf命令进
   行编辑。postconf命令还可用于确定Postfix的所有当前和默认配置设置或逐项确定这
   些设置。 2-3默认情况下,Postfix仅侦听来自本地主机的传入电子邮件。若要重新配置postfix以接收
   从远程主机发送的本地邮件,必须在/etc/postfix/main.cf中设置inet_interfaces = all 2-4对电子邮件进行故障排除时,将在/var/log/maillog中保留所有与邮件相关的操作日志,
   其中包括关于被事件和成功事件的信息。mailq命令(或postqueue -p)显示已排队的所
   有传出邮件的列表。若要尝试再次立即发送所有已排队的邮件,可以运行postfix flush命
   令(或postqueue -f);否则,postfix将大约每小时尝试重新发送一次,直至邮件被接受或过
   期 。
3.重要的Postfix配置指令  
    可以在/etc/postfix/main.cf文件中找到以下所有指令。 3-1 myorigin    
    重写本地发布的电子邮件,使其显示为来自该域。这样有助于确保响应返回入站邮件服务器
    默认:myorigin = $myhostname 3-2 inet_interfaces    
    控制Postfix侦听传入电子邮件的网络接口。如果设置为loopback-only,仅侦听
    127.0.0.1和::1,    
    如果设置为all,则侦听所有网络接口。还可以指定特定地址。    
    默认:inet_interfaces = localhost 3-3 mydestination    
    收到地址为这些域的电子邮件将传递至MDA,以进行本地发送。    
    默认:mydestination = $myhostname, localhost.$mydomain, localhost 3-4 mynetworks    
    IP地址和网络的逗号分隔列表(采用CIDR表示法)。这些地址和网络可以通过此MTA转
    发至任何位置,无需进一步身份验证。    
    默认:mynetworks = 127.0.0.0/8 3-5 relayhost    
    relayhost转发所有通过的出站邮件。通常用方括号指定,以阻止MX记录查找。    
    默认:relayhost = 3-6 local_transport    
     收件地址为$mydestination的邮件的发送方式。默认情况下,设置为
     local:$myhostname(使用Local MDA将传入电子邮件发送到/var/spool/mail中的
     本地邮件存储位置)    
     默认:local_transport = local:$myhostname 3-7     postconf -d 显示默认值。    
     postconf -n显示不同于默认值的更改。  
     
4.空壳邮件客户端(给服务端新建空壳,保护数据安全。)    
   实际上,大多数组织不再只用一个邮件服务器来处理所有入站和出战电子邮件。相反,出于
   安全方面的考虑邮件服务器专门针对特定角色进行了设置,以便可以面向其具体针对的应
   用程序更好标准角色包括:  
   1)null客户端:运行本地MTA的客户端计算机,使所有电子邮件都可以转发至中央邮件服
   务器以进行发送,null客户端不接受任何电子邮件的本地发送。    
   2)仅入站邮件服务器:在站点处理用户的所有传入电子邮件,并将之传递给MDA以发送至
   用户邮件存储位置的邮件服务器。在实际情况中,通常会在仅入站邮件服务器前端安装反
   垃圾邮件服务器或备,以过滤垃圾邮件并且仅将 正常邮件转发至入站邮件服务器。    
   3)出站邮件转发:出站邮件转发(或“smarthost”)接收所有出站邮件,并使用MX记录和
   SMTP协议将邮件转发至目标位置 。  


本文出自 “技术人生,简单不简单” 博客,请务必保留此出处http://willis.blog.51cto.com/11907152/1850900

SMTP基本电子邮件发送协议原理