本文接上文:搭建一臺(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ù)器非常簡單,如下所示。
安裝base軟件組,啟動(dòng)Sendmail服務(wù)。這里作者并不設(shè)置Sendmail的開機(jī)啟動(dòng),因?yàn)榻酉聛砭蜁?huì)將MTA切換到Postfix。沒必要費(fèi)功夫設(shè)置這個(gè)!
yum groupinstall base -yservice sendmail start
查看Sendmail服務(wù)器是否運(yùn)行
[root@localhost ~]# service sendmail statussendmail (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.comhostname -v mail2.xiyang-liu.comexit
重新登陸系統(tǒng)后,執(zhí)行如下語句查看主機(jī)名是否已經(jīng)配置完畢
[root@mail2 ~]# hostnamemail2.xiyang-liu.com
這時(shí),已經(jīng)可以通過senmail的默認(rèn)配置向外界發(fā)送郵件了,因?yàn)楸疚臋n不著重講解Sendmail,所以這部分配置就略去了。
使用Sendmail向外界發(fā)送郵件有三種方法:
下面逐一講解這三種方法。
通過LAMP調(diào)用Sendmail在/etc/php.ini中配置節(jié)選如下
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").; http://www.php.net/manual/en/mail.configuration.php#ini.sendmail-pathsendmail_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è)功能。
在Shell中,通過mailx命令發(fā)郵件,如下所示
mailx -s “subject:test mail” xiyangliu1987@gmail.comtype something herectrl+D
上述方式只能手動(dòng)在命令行中手動(dòng)輸入郵件內(nèi)容。有什么方法能不輸入任何內(nèi)容即可發(fā)送郵件? 想一想,哈哈!
通過SMTP命令行發(fā)送郵件?;久畹慕忉屓缦聢D所示:
實(shí)際命令操作如下,被雙尖括號(hào)包圍的是用戶輸入部分:
[root@mail2 ~]#telnet 127.0.0.1 25Trying 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 you250-ENHANCEDSTATUSCODES250-PIPELINING250-8BITMIME250-SIZE250-DSN250-ETRN250-DELIVERBY250 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ā)給誰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 connectionConnection closed by foreign host.
Sendmail的SMTP命令行支持HELP命令提供簡單的命令,如下所示:
[root@mail2 ~]#telnet 127.0.0.1 25Trying 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 you250-ENHANCEDSTATUSCODES250-PIPELINING250-8BITMIME250-SIZE250-DSN250-ETRN250-DELIVERBY250 HELP>>help<<214-2.0.0 This is sendmail214-2.0.0 Topics:214-2.0.0 HELO EHLO MAIL RCPT DATA214-2.0.0 RSET NOOP QUIT HELP VRFY214-2.0.0 EXPN VERB ETRN DSN AUTH214-2.0.0 STARTTLS214-2.0.0 For more info use "HELP <topic>".214-2.0.0 To report bugs in the implementation see214-2.0.0 http://www.sendmail.org/email-addresses.html214-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 STARTTLS214-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的講解做好鋪墊。
聯(lián)系客服