Linux 郵件服務__Linux

來源:互聯網
上載者:User
三個要點

1.smtp協議 2.搭建本地郵件伺服器 3.使用外部郵件伺服器 實現郵件功能


1.smtp協議 
         SMTP(Simple Mail Transfer Protocol)即簡易郵件傳輸通訊協定,它是一組用於由源地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式。SMTP協議屬於TCP/IP協議簇,它協助每台電腦在發送或中轉信件時找到下一個目的地。通過SMTP協議所指定的伺服器,就可以把E-mail寄到收信人的伺服器上了,整個過程只要幾分鐘。SMTP伺服器則是遵循SMTP協議的發送郵件伺服器,用來發送或中轉寄出的電子郵件。
         SMTP 認證,簡單地說就是要求必須在提供了賬戶名和密碼之後才可以登入 SMTP 伺服器,這就使得那些垃圾郵件的散播者無可乘之機。    增加 SMTP 認證的目的是為了使使用者避免受到垃圾郵件的侵擾。
        SMTP 在 TCP 協議 25 連接埠監聽串連請求。

      此外還有兩個協議需要瞭解 IMAP協議、 POP3協議
      簡單地說,SMTP管‘發’, POP3/IMAP管‘收’。

IMAP協議

        IMAP全稱是Internet Mail Access Protocol,即互動式郵件存取協議,它是跟POP3類似郵件訪問標準協議之一。不同的是,開啟了IMAP後,您在電子郵件用戶端收取的郵件仍然保留在伺服器上,同時在用戶端上的操作都會反饋到伺服器上,如:刪除郵件,標記已讀等,伺服器上的郵件也會做相應的動作。所以無論從瀏覽器登入郵箱或者用戶端軟體登入郵箱,看到的郵件以及狀態都是一致的。
        它與POP3協議的主要區別是使用者可以不用把所有的郵件全部下載,可以通過用戶端直接對伺服器上的郵件進行操作
  POP3協議

POP3是Post Office Protocol 3的簡稱,即郵局協議的第3個版本,它規定怎樣將個人電腦串連到Internet的郵件伺服器和下載電子郵件的電子協議。它是網際網路電子郵件的第一個離線協議標準,POP3允許使用者從伺服器上把郵件儲存到本地主機(即自己的電腦)上,同時刪除儲存在郵件伺服器上的郵件,而POP3伺服器則是遵循POP3協議的內送郵件伺服器,用來接收電子郵件的。  執行個體:

網易YEAH 郵箱相關伺服器資訊:

 郵件伺服器名稱 伺服器位址  連接埠號碼
  POP3伺服器 pop.yeah.net  110
 SMTP伺服器 smtp.yeah.net  25
 IMAP伺服器 imap.yeah.net  143


下面使用telnet 示範一下 smtp 互動過程 $telnet smtp.163. com 25                       發送串連
       220 163.com Anti-spam GT for Coremail System (163com[20141201])      回應220   服務就緒 helo 66                                                   HELO命令標記自己的身份          250 OK                                            回應250 請求郵件動作正確,完成
auth login                                               登陸驗證       334 dXNlcm5hbWU6                    要求輸入username:
這裡輸入USERbase64加密後的使用者名稱
      334 UGFzc3dvcmQ6                     要求輸入Password: 這裡輸入 PASSbase64加密後的密碼
      235 Authentication successful              回應235 :認證通過

MAILFROM:XXX@163 .COM          表示寄件者的郵件地址

       250 Mail OK

RCPTTO:XXX@163 .COM              標識接收者的郵件地址

        250 Mail OK

DATA                              

        354 End data with                            郵件的資料                 .                                                        以一個"."開始的行作為資料部分的結束標識



2.搭建本地郵件伺服器
      首先還是三個概念
        Internet的郵件系統是通過幾個複雜的部分串連而成的,對於終端使用者而言,我們熟悉的Outlook,Foxmai,linux下的mail、mailx、nail  等都是用來收信和發信的,稱之為MUA:Mail User Agent,郵件使用者代理        
        MUA並非直接將郵件發送至收件者手中,而是通過MTA:Mail Transfer Agent,郵件傳輸代理程式代為傳遞,Sendmail和Postfix就是扮演MTA的角色。        
        一封郵件從MUA發出後,可能通過一個或多個MTA傳遞,最終到達MDA:Mail Delivery Agent,郵件投遞代理,郵件到達MDA後,就存放在某個檔案或特殊的資料庫裡,我們將這個長期儲存郵件的地方稱之為郵箱。


         結合第一部分所講內容,一封信件發送時從  MUA到MTA,以及MTA到MTA之間使用的協議就是SMTP協議,而收郵件時,MUA到MDA之間使用的協議最常用的是POP3或IMAP
                  寄件者:MUA --發送--> MTA -> 若干個MTA... -> MTA -> MDA <--收取-- MUA:收件者

所以我們搭建本地郵件伺服器  要提供 郵件傳輸代理程式 和 郵件投遞代理 兩個服務
          目前比較主流的搭配是Sendmail + Dovecot 來提供這兩個服務   
  不過,sendmail的配置十分複雜,因此,也有人使用另外的一些工具,如qmail、postfix等等。 例如使用Postfix + Dovecot

      這裡主要講下Sendmail + Dovecot,

2.1     佈建網域名和網路
          公網ip為1.1.1.1   網域名稱為  yunwei521.top    在dns服務位址添加此解析
           主機記錄@   記錄類型 MX    記錄值 1.1.1.1   這樣就可以提供 例如 xxx@yunwei521.top 的郵箱服務。

       如果只是想在內網做一個測試,要先建立一台dns伺服器(192.168.1.1),並添加解析 將網域名稱解析到192.168.1.2我們要 建立的郵件伺服器 。


2.2 安裝軟體

      安裝郵件伺服器
# yum install sendmail sendmail-cf
    安裝pop3/imap服務
# yum install dovecot
      安裝使用者認證
# yum install cyrus-sasl
# yum install cyrus-sasl-md5
# yum install cyrus-sasl-plain
# yum install cyrus-sasl-lib

開啟防火牆25(smtp)、143(imap)連接埠,關閉SELINUX


2.3軟體配置
   配置sendmail 進入/etc/mail
# cd /etc/mail

3.1 配置access
# vi /etc/mail/access
通常情況下,Sendmail不會為郵件服務Relay資訊,這樣可以防止一些有惡意的人利用別人的郵件伺服器亂髮郵件,所以,access保持預設配置即可
內容如下
Connect:localhost.localdomain           RELAY
Connect:localhost                       RELAY
Connect:127.0.0.1                       RELAY
當然也可針對某段IP或某個IP做修改,如要禁止某個ip發信,則可添加
    192.168.0.2   deny
儲存檔案後運行下面命令進行編譯
    # makemap hash access.db < access

3.2 配置TLS(支援加密串連LLS)
首先產生sendmail.pem檔案
# cd /etc/pki/tls/certs
# make sendmail.pem
Country Name (2 letter code) [GB]:ch   
State or Province Name (full name) [Berkshire]:sh
Locality Name (eg, city) [Newbury]:sh
Organization Name (eg, company) [My Company Ltd]:test.
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname)[]: server110 .com
E-mail Address []:test@ server110 .com

3.3 配置sendmail.mc
# vi /etc/mail/sendmail.mc
添加:
define(`confAUTH_OPTIONS', `A p y')dnl
define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl
define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl
define(`confSERVER_KEY', `/etc/pki/tls/certs/sendmail.pem')dnl
如果有,則預設被dnl注釋,刪除前面的dnl注釋即可
取消如下兩行的注釋(刪除開頭的dnl)
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
修改SMTP的監聽IP為 0.0.0.0
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
不要改

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.