本文接上文:搭建一臺(tái)健壯的E-mail服務(wù)器—基礎(chǔ)知識(shí)和概念 學(xué)習(xí)Linux平臺(tái)的電子郵件首先要學(xué)的肯定是sendmail,但是隨著時(shí)間推移,Sendmail變得越來越龐大。并且很多現(xiàn)代化的功能,Sendmail也無法繼續(xù)支持。取而代之的是新秀Postfix,它具有體積小,功能強(qiáng)大,并且是公認(rèn)的最安全的MTA。Redhat公司也將Postfix作為默認(rèn)的MTA集成在RHEL中。但是,在大多數(shù)聯(lián)網(wǎng)的Unix/Linux主機(jī)中,Sendmail使用默認(rèn)配置即可完成向外界發(fā)送郵件的功能。大大方便了系統(tǒng)管理員。下面將通過系統(tǒng)默認(rèn)配置的Sendmail講述SMTP command命令。 在這一節(jié)中,將引進(jìn)一個(gè)新詞“只發(fā)不收”。說白了就是有這么一種服務(wù)器。發(fā)件人通過它發(fā)出去的郵件,收件人無法通過“回復(fù)”功能回復(fù)郵件。即便回復(fù)了,發(fā)件人也收不到。 這時(shí)或許就有人疑惑了,那這種電子郵件系統(tǒng)有什么用啊?我告訴你,這種郵件系統(tǒng)太有用了。做過Linux系統(tǒng)管理員的人都有這么一個(gè)體會(huì),每天登錄各種服務(wù)器,查看性能參數(shù)。服務(wù)器數(shù)量少了還好處理一些。隨著服務(wù)器數(shù)量的增多,往往會(huì)忘記登錄哪臺(tái)服務(wù)器。為了解決這種問題,往往在服務(wù)器上編寫各種腳本,收集服務(wù)器性能參數(shù),通過電子郵件的形式發(fā)送給自己。這種情況下,服務(wù)器只發(fā)送郵件,不接收郵件! 配置“只發(fā)不收”型的郵件服務(wù)器非常簡(jiǎn)單,如下所示。 Sendmail安裝啟動(dòng)安裝base軟件組,啟動(dòng)Sendmail服務(wù)。這里作者并不設(shè)置Sendmail的開機(jī)啟動(dòng),因?yàn)榻酉聛砭蜁?huì)將MTA切換到Postfix。沒必要費(fèi)功夫設(shè)置這個(gè)! yum groupinstall base -y service sendmail start 查看Sendmail服務(wù)器是否運(yùn)行 [root@localhost ~]# service sendmail status sendmail (pid 1691) is running... sm-client (pid 1700) is running... 郵件服務(wù)器必須配置一個(gè)全后綴主機(jī)名,因?yàn)猷]件服務(wù)器是通過DNS的MX記錄解析的。下面配置可在不重啟服務(wù)器的情況下,設(shè)置主機(jī)名 vi編輯文件/etc/sysconfig/network 添加如下幾行 hostname=mail2.xiyang-liu.com hostname -v mail2.xiyang-liu.com exit 重新登陸系統(tǒng)后,執(zhí)行如下語(yǔ)句查看主機(jī)名是否已經(jīng)配置完畢 [root@mail2 ~]# hostname mail2.xiyang-liu.com 這時(shí),已經(jīng)可以通過senmail的默認(rèn)配置向外界發(fā)送郵件了,因?yàn)楸疚臋n不著重講解Sendmail,所以這部分配置就略去了。 使用Sendmail發(fā)送郵件使用Sendmail向外界發(fā)送郵件有三種方法:
下面逐一講解這三種方法。 php調(diào)用Sendmail自動(dòng)發(fā)郵件通過LAMP調(diào)用Sendmail在/etc/php.ini中配置節(jié)選如下 ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://www./manual/en/mail.configuration.php#ini.sendmail-path sendmail_path = /usr/sbin/sendmail -t -i ; to the sendmail binary. These parameters will always replace the value of 啟動(dòng)apache之后,即可通過Sendmail命令直接發(fā)送郵件到特定的賬戶。Nagios和cacti配置中會(huì)用到這個(gè)功能。 使用mailx發(fā)送郵件在Shell中,通過mailx命令發(fā)郵件,如下所示 mailx -s “subject:test mail” xiyangliu1987@gmail.com type something here ctrl+D 上述方式只能手動(dòng)在命令行中手動(dòng)輸入郵件內(nèi)容。有什么方法能不輸入任何內(nèi)容即可發(fā)送郵件? 想一想,哈哈! 使用SMTP Command發(fā)送郵件通過SMTP命令行發(fā)送郵件?;久畹慕忉屓缦聢D所示: 實(shí)際命令操作如下,被雙尖括號(hào)包圍的是用戶輸入部分: [root@mail2 ~]#telnet 127.0.0.1 25 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 mail2.xiyang-liu.com ESMTP Sendmail 8.14.4/8.14.4; Wed, 12 Jun 2013 10:57:44 +0800 >>ehlo client<< #常用來查看服務(wù)器支持那些特征,后必須跟一個(gè)標(biāo)識(shí)身份的字符串 250-mail2.xiyang-liu.com Hello localhost [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-DELIVERBY 250 help >>MAIL FROM: root@mail2.xiyang-liu.com << #從哪里發(fā)出,這個(gè)地址可以隨意填寫 250 2.1.0 root@mail2.xiyang-liu.com... Sender ok >>RCPT TO: manager@ xiyang-liu.com << #發(fā)給誰(shuí) 250 2.1.5 manager@ xiyang-liu.com... Recipient ok >>DATA<< #開始輸入正文 354 Enter mail, end with "." on a line by itself #開始輸入正文,以單獨(dú)英文句號(hào)結(jié)束的行標(biāo)識(shí)正文結(jié)束 subject: hello me #摘要 telnet smtp to send a email. . #輸入結(jié)束 <<250 2.0.0 r5C2vi3V010093 Message accepted for delivery >>quit<< #退出 221 2.0.0 lamp.honliv.com closing connection Connection closed by foreign host. Sendmail的SMTP命令行支持HELP命令提供簡(jiǎn)單的命令,如下所示: [root@mail2 ~]#telnet 127.0.0.1 25 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 mail2.xiyang-liu.com ESMTP Sendmail 8.14.4/8.14.4; Wed, 12 Jun 2013 11:18:57 +0800 >>ehlo client<< 250-mail2.xiyang-liu.com Hello localhost [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-DELIVERBY 250 HELP >>help<< 214-2.0.0 This is sendmail 214-2.0.0 Topics: 214-2.0.0 HELO EHLO MAIL RCPT DATA 214-2.0.0 RSET NOOP QUIT HELP VRFY 214-2.0.0 EXPN VERB ETRN DSN AUTH 214-2.0.0 STARTTLS 214-2.0.0 For more info use "HELP <topic>". 214-2.0.0 To report bugs in the implementation see 214-2.0.0 http://www./email-addresses.html 214-2.0.0 For local information send email to Postmaster at your site. 214 2.0.0 End of HELP info >>help starttls<< 214-2.0.0 STARTTLS 214-2.0.0 Start TLS negotiation. 214 2.0.0 End of HELP info >>help auth<< 214-2.0.0 AUTH mechanism [initial-response] 214-2.0.0 Start authentication. 214 2.0.0 End of HELP info >>quit<< Connection closed by foreign host. 查看郵件是否已經(jīng)被接受,如下是thunderbird的截圖: 本文通過Sendmail搭建的郵件服務(wù)器,著重講解了SMTP Command的應(yīng)用。為以后Postfix的講解做好鋪墊。 |
|