CentOS 6.5 安裝 SendMail 配置郵件服務

CentOS 6.5 安裝 SendMail 配置郵件服務

CentOS 安裝配置 SendMail + Shell 腳本自動統計網站訪問日志 能夠定時的了解網站的運行情況,相當的方便。
一.安裝 SendMail


yum install -y sendmail
yum install -y sendmail-cf

二. 安裝 Salauthd


//使用SMTP認證,需要安裝saslauthd服務
yum install -y saslauthd

//啟動saslauthd服務 
service saslauthd start

//設置saslauthd開機自動啟動
chkconfig saslauthd on

三. 配置 SendMail


//配置saslauthd 
vi /etc/mail/sendmail.mc

1.在該配置文件中,將如下兩行的注釋去掉:將下面兩行的dnl去掉。在sendmail文件中,dnl表示該行為注釋行。


dnl TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

TRUST_AUTH_MECH的作用是使sendmail不管access文件中如何設置,都能relay那些通過EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式驗證的郵件,注意這里是對需要relay的郵件進行驗證,這點很重要,只有這樣通過驗證的郵件才會被relay以防止sendmail服務器被濫用。

confAUTH_MECHANISMS的作用是確定系統的認證方式。Outlook Express支持的認證方式是LOGIN。

2.設置Sendmail服務的網絡訪問權限,如果僅僅是本機使用,就不用配置,如果是允許外部機器訪問,可以進行限制。


DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

將127.0.0.1改為0.0.0.0,意思是任何主機都可以訪問Sendmail服務。如果僅讓某一個網段能夠訪問到Sendmail服務,將127.0.0.1改為形如192.168.1.0/24的一個特定網段地址。

3.進行信息偽裝,要不然發過去郵件如[email protected](服務器名稱),會被郵件服務器拒收的。具體操作如下:


//此句去掉注釋,修改為:MASQUERADE_AS('yourdomain.com')dnl
dnl MASQUERADE_AS('mydomain.com')dnl //是否對信息作偽裝
//去掉注釋
dnl FEATURE(masquerade_envelope)dnl //是否對整個域(包括子域)做偽裝 
//去掉注釋
dnl FEATURE(masquerade_entire_domain)dnl
//去掉注釋
dnl MASQUERADE_DOMAIN(localhost)dnl //對localhost域做偽裝
//去掉注釋
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl //將locahost.com域偽裝成yourdomain.com

保存文件后,需要更改hostname為你設置的域名,要不然發到郵件會因為發信人郵箱名不合格被拒收。


hostname yourdomain.com

4.生成配置文件

Sendmail的配置文件由m4來生成,m4工具在sendmail-cf包中。如果系統無法識別m4命令,說明sendmail-cf軟件包沒有安裝。


m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

四. 啟動 SendmMail


chkconfig sendmail on //開機啟動
service sendmail start

五. 測試發送郵件

先創建一個內容文件,然后輸入一些內容,最好是英文,要不然漢字會亂碼。寫完后wq保存退出。


vim content.txt

發送郵件給你郵箱,命令如下:


mail -s "Here is the subject" [email protected] < content.txt

然后我就成功收到了郵件,如果郵件被退回,/var/spool/mail/root里會出現退信信息,可以幫我我們發現錯誤。我當時是因為發信人名稱不合格被拒收的。

六. 用 PHP 發送郵件


vim /var/www/html/mail.php  //創建測試文件
//寫入php代碼
<?php
  mail('[email protected]','subject','message body');
  echo 'successful send mail';
?>

簡書 / @TyiMan

七.mail: command not found

如何命令行發送郵件時提示:bash: mail: command not found 則需要安裝相應的軟件包。


yum -y install mailx

如此,基本上問題就解決了。

相關推薦

發表評論

微信掃一掃

微信掃一掃

微信掃一掃,分享到朋友圈

CentOS 6.5 安裝 SendMail 配置郵件服務
返回頂部

顯示

忘記密碼?

顯示

顯示

獲取驗證碼

Close
香港开奖直播开奖记录