1. 程式人生 > >Ubuntu 中sendmail 的安裝、配置與傳送郵件的具體實現

Ubuntu 中sendmail 的安裝、配置與傳送郵件的具體實現

一、安裝

ubuntu中sendmail函式可以很方便的傳送郵件,ubuntu sendmail先要安裝兩個包。

必需安裝的兩個包:

程式碼 
  1. sudo apt-get install sendmail  
  2. sudo apt-get install sendmail-cf

下面幾個包是可選的:

程式碼 
  1. squirrelmail              //提供webmail          
  2. spamassassin          //提供郵件過濾  
  3. mailman                   //提供郵件列表支援  
  4. dovecot                   // 提供IMAP和POP接收郵件伺服器守護程序
      

注意:

    • Ubuntu下使用最常用的mail功能,需要安裝mailutils
    • 安裝命令:sudo apt-get install mailutils  
    • 使用帶附件的功能,則還需要安裝sharutils,
    • 安裝命令:sudo apt-get install sharutils;(yum install sharutils )

終端輸入命令:ps aux |grep sendmail
輸出如下:

root     20978  0.0  0.3   8300  1940 ?        Ss   06:34   0:00 sendmail: MTA: accepting connections          
root     21711  0.0  0.1   3008   776 pts/0    S+   06:51   0:00 grep sendmail

說明sendmail 已經安裝成功並啟動了

二、配置

sendmail 預設只會為本機使用者傳送郵件,只有把它擴充套件到整個Internet,才會成為真正的郵件伺服器。

開啟sendmail的配置巨集檔案:/etc/mail/sendmail.mc

 vi  /etc/mail/sendmail.mc

找到如下行:

程式碼 
  1. DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl

 修改Addr=0.0.0.0  ,表明可以連線到任何伺服器。

生成新的配置檔案:

程式碼 
  1. #cd /etc/mail  
  2. #mv sendmail.cf sendmail.cf~      //做一個備份
      
  3. #m4 sendmail.mc > sendmail.cf   //>的左右有空格,提示錯誤沒有安裝sendmail-cf  

三、測試傳送郵件

常用傳送郵件方式如下:

    1.如何寫一般的郵件: mail [email protected]  Cc 編輯抄送物件,Subject:郵件主題,輸入回車,郵件正文後,按Ctrl-D結束

    2.快速傳送方式: echo “郵件正文” | mail -s 郵件主題 [email protected]

    3.以檔案內容作為郵件正文來發送: mail -s test [email protected] < test.txt

    4.傳送帶附件的郵件: uuencode 附件名稱 附件顯示名稱 | mail -s 郵件主題 傳送地址

       例如: uuencode test.txt test.txt | mail -s Test [email protected]

注意問題:

  1)

  如果你發現你的sendmail啟動很慢的話,可以這樣解決

  # vi /etc/hosts

  127.0.0.1 localhost.localdomain localhost

  修改成

  127.0.0.1 localhost.localdomain localhost 主機名稱

  檢視本機的主機名稱的命令是: hostname

  只保留這一行就行,多餘的行就可以刪掉

  2)

*** ERROR: FEATURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`always_add_domain')*** ERROR: FEATURE() should be before MAILER()
*** MAILER(`local') must appear after FEATURE(`allmasquerade')*** ERROR: FEATURE() should be before MAILER()

修改sendmail.mc最後幾行
vi /etc/mail/sendmail.mc
將文件中的
MAILER_DEFINITIONS
MAILER(`local')dnl
MAILER(`smtp')dnl
放到文件最後(為什麼這麼做,沒有找到原因,不過錯誤的提示,要求你這樣做)