ubuntu安裝sendmail
- 2020 年 4 月 2 日
- 筆記
一、安裝 ubuntu中sendmail函數可以很方便的發送郵件,ubuntu sendmail先要安裝兩個包。必需安裝的兩個包: sudo apt-get install sendmail sudo apt-get install sendmail-cf 下面幾個包是可選的: squirrelmail //提供webmail spamassassin //提供郵件過濾 mailman //提供郵件列表支援dovecot // 提供IMAP和POP接收郵件伺服器守護進程 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 //做一個備份 #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] 另外需要注意,將sendmail使用的域名進行相應的修改,系統默認為localhost.localdomain,其實不改也行,不過有些pop3伺服器會過濾掉來自localhost.localdomain的郵件,導致郵件不能正常查收,所以,最好是改一下 hostname,確保郵件發送的成功率。 以下是我線上機器修改好了的配置,可供參考。 # cat /etc/hosts 127.0.0.1 met.com localhost.localdomain localhost 一般/etc/hosts 的內容一般有如下類似內容: 127.0.0.1 localhost.localdomain localhost 每行由三部份組成,每個部份由空格隔開。 其格式就是 IP地址 主機名/域名 主機名別名 即,第一部份:網路IP地址;第二部份:主機名或域名;第三部份:主機名別名; 那我們要把它修改為自己的域名,以server110.com為例,我們就修改為以下格式:
127.0.0.1 server110.com localhost # cat /etc/mail/access Connect:localhost.localdomain RELAY Connect:localhost RELAY Connect:127.0.0.1 Connect:met.com RELAY # cat /etc/mail/local-host-names met.com
修改完成後,重啟sendmail服務,通過telnet命令,測試一下看看是否已生效
# telnet 127.0.0.1 25 Trying 127.0.0.1... Connected to met.com (127.0.0.1). Escape character is '^]'. 220 met.com ESMTP Sendmail 8.13.8/8.13.8; Sun, 10 Oct 2010 14:00:33 +0800
從以上結果可以發現,localhost.localdomain 已經變成了 met.com 這個域名,表示修改成功
PS:
如果使用sudo命令時報錯:sudo: unable to resolve host webank.pw
則是由於/etc/hostname and /etc/hosts這兩個文件中沒有包含webank.pw
PS:
作者伺服器成功配置實例:
youhong@webank$ cat /etc/hosts 127.0.0.1 localhost.localdomain localhost 127.0.0.1 webank.pw # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost TENCENT.site TENCENT ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters youhong@webank$ cat /etc/hostname webank.pw
至此,可以使用帶域名的郵箱給其它郵箱發送郵件了。
關於sendmail的日誌和配置文件:
sendmail默認安裝成功後,它的日誌是在/var/log下,裡面記載了sendmail的各種日誌,其配置文件則主要分布在/etc/mail路徑下。