ubuntu中sendmail函數可以很方便的發送郵件,ubuntu sendmail先要安裝兩個包。
必需安裝的兩個包:
- sudo apt-get install sendmail
- sudo apt-get install sendmail-cf
下面幾個包是可選的:
- squirrelmail //提供webmail
- spamassassin //提供郵件過濾
- mailman //提供郵件列表支持
- 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
找到如下行:
- DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
修改Addr=0.0.0.0 ,表明可以連接到任何服務器。
生成新的配置文件:
- #cd /etc/mail
- #mv sendmail.cf sendmail.cf~ //做一個備份
- #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
放到文檔最后(為什么這么做,沒有找到原因,不過錯誤的提示,要求你這樣做)