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 test@126.com  Cc 編輯抄送對象,Subject:郵件主題,輸入回車,郵件正文后,按Ctrl-D結束

    2.快速發送方式: echo “郵件正文” | mail -s 郵件主題 test@126.com

    3.以文件內容作為郵件正文來發送: mail -s test test@126.com < test.txt

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

       例如: uuencode test.txt test.txt | mail -s Test test@126.com

 

注意問題:

  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
放到文檔最后(為什么這么做,沒有找到原因,不過錯誤的提示,要求你這樣做)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM