linux配置郵件
1. 在linux下怎樣進行郵件服務配置
回答:figoo
新手
5月16日 11:52 配置電子郵件服務
利用電子郵件服務,您可以在計算機中安裝一些組件並將該計算機配置為電子郵件伺服器。電子郵件服務包括郵局協議 3 (POP3) 服務以及簡單郵件傳輸協議 (SMTP) 服務,分別用於接收和傳送電子郵件。為了向用戶提供電子郵件服務(如發送和接收電子郵件),管理員可以在伺服器上創建一些郵箱。
POP3
POP3 服務是一種用來接收電子郵件的電子郵件服務。管理員可以使用 POP3 服務,在郵件伺服器上存儲和管理電子郵件帳戶。在郵件伺服器中安裝了 POP3 服務後,用戶即可使用支持 POP3 協議的電子郵件客戶端(如 Outlook 或 Outlook Express)連接到郵件伺服器,並將電子郵件接收到其本地計算機中。POP3 服務與用來發送外發電子郵件的 SMTP 服務結合使用。
SMTP
SMTP 控制將電子郵件經由組織或 Internet 向目標伺服器傳輸和遞送的方式。SMTP 在伺服器之間接收和發送電子郵件。在安裝 POP3 服務時,就會自動在計算機中安裝 SMTP 服務以允許用戶發送外發電子郵件。當使用 POP3 服務創建域時,還會將該域添加到 SMTP 服務中,以允許該域中的郵箱發送外發電子郵件。郵件伺服器中的 SMTP 服務接收傳入的郵件,並將該電子郵件傳送到郵件存儲中。
設置電子郵件服務
要安裝電子郵件服務,請按照以下步驟操作:
1.
以「[email protected]」的身份登錄到「HQ-CON-DC-01」中。
2.
單擊「開始」按鈕,單擊「控制面板」,然後單擊「添加或刪除程序」。
3.
單擊「添加/刪除 Windows 組件」,選擇「電子郵件服務」復選框,然後單擊「下一步」。(注意,您可能需要提供安裝 CD 才能繼續。)
4.
在「Windows 組件向導」完成後,單擊「完成」,然後關閉「添加或刪除程序」屏幕。
要配置電子郵件服務,請按照以下步驟操作:
1.
單擊「開始」按鈕,指向「所有程序」,指向「管理工具」,然後單擊「POP3 服務」。
2.
在「POP3 服務」下面,在左側樹中單擊「HQ-CON-DC-01」。
3.
單擊「新域」鏈接,鍵入「contoso.com」作為「域名」,然後單擊「確定」。
4.
在右窗格中,雙擊「contoso.com」。在「HQ-CON-DC-01」下面,左窗格中的樹將展開並顯示「contoso.com」域。單擊「添加郵箱」鏈接。
5.
在「添加郵箱」屏幕上,鍵入「mike」作為「郵箱名」,清除「為此郵箱創建相關聯的用戶」復選框,單擊「確定」,在出現「POP3 服務」確認屏幕後,再次單擊「確定」。
6.
再次單擊「添加郵箱」鏈接,重復步驟 5 為「Administrator」創建郵箱。
注意:由於 Active Directory 帳戶是在安裝電子郵件服務之前建立的,因此,需要對郵箱進行手動配置。如果登錄和郵箱名相同,POP3 服務配置將使用關聯的電子郵件地址來更新 Active Directory 用戶信息。在定義新的郵箱時,POP3 服務可以自動創建用戶帳戶。
7.
最小化「POP3 服務」MMC。
要測試基本電子郵件功能,請按照以下步驟操作:
1.
單擊「開始」按鈕,指向「所有程序」,然後單擊「Outlook Express」。
2.
在「Internet 連接向導」屏幕上,鍵入「Contoso Administrator」作為「顯示名」,然後單擊「下一步」。
3.
鍵入「[email protected]」作為「電子郵件地址」,然後單擊「下一步」。
4.
在「接收郵件伺服器」和「發送郵件伺服器」中,鍵入「HQ-CON-DC-01」,然後單擊「下一步」。
5.
在「Internet 郵件登錄」屏幕上,將登錄名更改為「[email protected]」並提供「Administrator」帳戶的「密碼」,然後單擊「下一步」。
6.
單擊「完成」。
7.
單擊「發送/接收」按鈕,以確保能夠與電子郵件伺服器成功交互。
8.
單擊「創建郵件」,將郵件地址指定為「[email protected]」,鍵入「Test Mail」作為「主題」,然後單擊「發送」。
9.
最大化「POP3 服務」MMC。
10.
在右側的結果窗格的「HQ-CON-DC-01」樹下面,確認 mike 的「郵箱」中有一封郵件,然後關閉「POP3 服務」MMC。
揪錯 ┆ 評論1 ┆ 舉報
2. linux沒有配置dns時怎麼配置郵件伺服器
沒有DNS也一樣可以配置郵件伺服器,只不過在填寫相關名字的設置中(例如,SMTP主機名,POP3主機名)使用IP地址就可以了,客戶端設置時,也是這樣。
3. linux裡面怎樣配置郵件伺服器
Sendmail伺服器配置
首先,在DNS正向解析上添加一個郵件交換器的名稱
這里順便把dns的測試也附上:
啟動sendmail
正向主區域配置文件:
修改sendmail的配置文件
vi /etc/mail/sendmail.cf
改成
修改sendmail的配置文件
vi /etc/mail/sendmail.mc
去掉dnl
再添加兩行
做輸入重定向m4 /etc/mail/sendmail.mc>/etc/mail/sendmail.cf
編輯 /etc/mail/access
執行makemap hash /etc/mail/access.db </etc/mail/access
編輯vi /etc/mail/local-host-names把郵件伺服器使用的域名給添加上去
重啟sendmail服務
最後給[email protected]發送測試郵件
End。。。
4. linux 命令模式下怎麼配置郵件伺服器
Linux什麼系統的?如果是AS5.5的話...那我現在在下面打的就是=
=...
十分還真不好拿啊~建議LZ加點分-
-看在寫的那麼辛苦的份上..
物理機IP:192.168.10.100
域名:www.aiy.com
首先先設置DNS
mkdir
/mnt/cdrom
mount
-t
iso9660
/dev/cdrom
/mnt/cdrom
(掛載ISO...因為我用的是虛擬機=
=沒有光碟..)
cd
/mnt/cdrom/Server/
rpm
-ivh
caching-chroot-9.3.3-7.el5.i386.rpm
rpm
-ivh
bind-*
vim
/etc/name.rfc1912.zones
=
=裡面配置文件太長了...直接說哪一行吧-
-反正都差不多~只要是AS5.5的話
15行:localdomin修改為aiy.com
17行:localdomain.zone改為aiy.com.zone
27行:0.0.127改為本地前三位倒過來...10.168.192
29行:name.local改為192.168.10.zone
輸入Shift+;
然後輸入wq!強制保存並退出
vim
/etc/named.caching.nameserver.conf
15行127.0.0.1改為any
23行localhost改為any
32行、33行localhost改為any
cd
/var/named/chroot/var/named
cp
-p
localdomain.zone
aiy.com.zone
cp
-p
named.local
192.168.10.zone
vim
aiy.com.zone
在最後加mail
(TAB鍵對齊就好了)
IN
A
192.168.10.100
aiy.com
IN
MX
5
mail.aiy.com
同樣
輸入Shift+;
然後輸入wq!強制保存並退出
vim
192.168.10.zone
同樣在最後加100
IN
PTR
mail.aiy.com(注意空格同樣是tab)
輸入Shift+;
然後輸入wq!強制保存並退出
(=
=下面的話這兩句忽略掉了...太麻煩了)
ln
-s
aiy.com.zone
/var/named/
ln
-s
192.168.3.zone
/var/named/
vim
/etc/resolv.conf
nameserver
192.168.10.100
service
named
restart
試試
nslookup
mail.aiy.com
=
=DNS打完...然後MAIL等下繼續..先提交保存=
=
-
-現在繼續..
-
-繼續...掛載省略了...直接安裝
cd
/mnt/cdrom/Server
rpm
-ivh
m4-*
rpm
-ivh
sendmail-*
(一開始安裝系統時候我沒安裝...所以現在掛載~如果一開始有選sendmail的話54掉就可以了..=
=再次~)
前面其實就設置好了mail服務的DNS...
cd
/etc/mail
vim
local-host-names
在最下面輸入aiy.com
vim
sendmail.mc
116行127.0.0.1改為0.0.0.0
m4
sendmail.mc
>
sendmail.cf
cd
/etc/init.d
./saslauthd
restart
./sendmail
restart
./dovecot
restart
useradd
aiy
建立aiy用戶
passwd
aiy
123456
123456
用戶aiy密碼設置為123456
mail
[email protected]
123
(標題)
123
(內容)
ctrl+d
然後信息就發完了..
T.T終於輪到測試了~...
su
aiy
切換到aiy用戶
mail
查看aiy用戶的mail
=
=這樣就完了...現在發現aiy裡面有份root郵件吧...T.T
還能輸入
8917
字-
-不知不覺打了很多字了=
=
我QQ
1842534312不懂可以問我..
-0-可以轉載~但是請保留全部...
5. 如何在linux 下配置 SMTP 服務
Linux下的SMTP服務的配置,比較復雜一些,且各發行版本有些差異,以下是一個示例,供參考(建議使用第三個方法)
linux下smtp配置方法有幾種,具體如下:
方法一,使用mail函數發送郵件;使用時時需要在本地系統上正確設置SMTP,否則將不能發送郵件。由於對系統的依賴性比較大,很多時候很不穩定,在一些提供虛擬主機服務的代理商中使用mail函數發送郵件往往很不好用,所以不推薦使用這種方法。
方法二,使用管道的形式發送郵件,主要是使用php中的popen函數。使用管道的方法發送郵件屬於比較底層的操作,它取決於用戶調用程序的穩定性。所以相比mail函數,這是一種可選的發送郵件的方式,但是這些本地的郵件系統都太復雜了,用戶可能不會配置。
方法三(推薦),使用phpmailer。phpmailer類是一個開源的發送郵件類,可以從http://phpmailer.sourceforge.net官網下載,它含兩個文件class.smtp.php和class.phpmailer.php。代碼如下
include_once("class.phpmailer.php");
/**
* 定義郵件模塊配製信息
*/
define("SMTP_HOST","smtp.mail.yahoo.com"); // SMTP 主機
define("SMTP_MAIL"," [email protected]"); // SMTP 用戶email
define("SMTP_PASS"," XXXX"); // SMTP 用的密碼
define("SERVICE_MAIL"," [email protected]"); // SMTP 用戶email
define("SERVICE_NAME","PHPBOOK郵件測試"); // SMTP 用的名字
/**
* 使用phpmailer發郵件模塊
*
* @param string $email
* @param string $user
* @param string $subject
* @param string $body
* @return bool
*/
function sendMail($email,$user,$subject,$body)
{
$mail = new PHPMailer();
//$this;
$mail->IsSMTP(); // 設置使用SMTP
$mail->Host = SMTP_HOST; // 設置SMTP伺服器地址
$mail->SMTPAuth = true; // 打開SMTP許可權驗證
$mail->Username = SMTP_MAIL; // SMTP 用戶名
$mail->Password = SMTP_PASS; // SMTP 伺服器密碼
$mail->From = SERVICE_MAIL; // 設置發送者地址
$mail->FromName = SERVICE_NAME; // 設置發送者名字
$mail->AddAddress($email, $user); // 添加接收者地址
$mail->AddReplyTo(SERVICE_MAIL, SERVICE_NAME); // 設置回復地址
$mail->WordWrap = 50; // 設置顯示格式
$mail->IsHTML(true); // 設置郵件支持html
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AltBody = ""; // 文本類型的郵件
if(!$mail->Send())
{
return $mail->ErrorInfo;
}
return true;
}
//開始發送測試郵件ng: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/xiehui/admin/mail/class.smtp.php on line 89
$tomail = " [email protected]";
$user = " XXXXlinux";
$_mailSubject = "郵件測試示例!"; // 發給用戶的郵件標題小組
$_mailBody = "新浪網"; // 郵件內容小組
sendMail($tomail,$user,$_mailSubject,$_mailBody);
?>
實驗證明yahoo的smtp很好用,號稱sina的其實並不好用,我卡在著好長時間。
方法四,給予socket編寫的程序,源代碼如下
使用socket發送郵件的封裝類:
class sendmail{
var $lastmessage; //記錄最後返回的響應信息
var $lastact; //最後的動作,字元串形式
var $welcome; //用在HELO後面,歡迎用戶
var $debug; //是否顯示調試信息
var $smtp; //smtp伺服器
var $port; //smtp埠號
var $fp; //socket句柄
//發送郵件函數
function send_mail($smtp, $welcome="", $debug=false) {
if(empty($smtp)) die("SMTP不能為空!");
$this->smtp=$smtp;
if(empty($welcome)) {
$this->welcome=gethostbyaddr("localhost");
}else
$this->welcome=$welcome;
$this->debug=$debug;
$this->lastmessage="";
$this->lastact="";
$this->port="25";
}
//顯示調試信息
function show_debug($message, $inout) {
if ($this->debug) {
if($inout=="in"){ //響應信息
$m='<< ';
}else
$m='>> ';
if(!ereg("\n$", $message))
$message .= "
";
$message=nl2br($message);
echo "${m}${message}";
}
}
//執行傳遞的命令
function do_command($command, $code) {
$this->lastact=$command;
$this->show_debug($this->lastact, "out");
fputs ( $this->fp, $this->lastact );
$this->lastmessage = fgets ( $this->fp, 512 );
$this->show_debug($this->lastmessage, "in");
if(!ereg("^$code", $this->lastmessage))
return false;
else
return true;
}
//郵件發送處理
function send( $to,$from,$subject,$message) {
//連接伺服器
$this->lastact="connect";
$this->show_debug("連接到SMTP 伺服器: ".$this->smtp, "out");
$this->fp = fsockopen ( $this->smtp, $this->port );
if ( $this->fp ) {
$this->set_socket_blocking( $this->fp, true );
$this->lastmessage=fgets($this->fp,512);
$this->show_debug($this->lastmessage, "in");
if (! ereg ( "^220", $this->lastmessage ) ) {
return false;
}else{
$this->lastact="HELO " . $this->welcome . "\n";
if(!$this->do_command($this->lastact, "250")){
fclose($this->fp);
return false;
}
$this->lastact="MAIL FROM: $from" . "\n";
if(!$this->do_command($this->lastact, "250")){
fclose($this->fp);
return false;
}
$this->lastact="RCPT TO: $to" . "\n";
if(!$this->do_command($this->lastact, "250")){
fclose($this->fp);
return false;
}
//開始發送郵件正文
$this->lastact="DATA\n";
if(!$this->do_command($this->lastact, "354")){
fclose($this->fp);
return false;
}
//開始處理郵件主題頭
$head="Subject: $subject\n";
if(!empty($subject) && !ereg($head, $message)){
$message = $head.$message;
}
//開始處理郵件From頭
$head="From: $from\n";
if(!empty($from) && !ereg($head, $message)) {
$message = $head.$message;
}
//開始處理郵件To頭
$head="To: $to\n";
if(!empty($to) && !ereg($head, $message)) {
$message = $head.$message;
}
//處理結束串
if(!ereg("\n\.\n", $message))
$message .= "\n.\n";
$this->show_debug($message, "out");
fputs($this->fp, $message);
$this->lastact="QUIT\n";
if(!$this->do_command($this->lastact, "250")){
fclose($this->fp);
return false;
}
}
return true;
}else{
$this->show_debug("連接失敗!!", "in");
return false;
}
}
}
?>
使用socket發送郵件示例:
include ("./sendmail.class.php");
$mail = new sendmail();
$email = "您好,這是一個測試郵件!";
$sendmail = new send_mail("smtp.mail.126.com","PHPBOOK",true); //顯示調示信息
if($mail->send("[email protected]", "[email protected]", "測試SOCKET郵件", $email)) {
echo "發送成功!
";
}else{
echo "發送失敗!
";
}
?>
6. 怎樣在Linux下架設郵件伺服器Sendmail
一.安裝Sendmail 完全安裝Red Hat Linux 9.0時,Sendmail就會自動內置,版本號為8.12.8-4。如果你不確定Linux是否已經安裝有sendmail,可以輸入以下命令查看: [root@ahpeng root] rpm–qagrep sendmail 如果確定沒有安裝,請在圖形界面下依次選擇單擊「主菜單-系統設置-添加刪除應用程序」,然後在打開的「軟體包管理」窗口裡選中「郵件伺服器」選項,點「更新」後按照提示安裝即可。 另一種辦法是:直碧或接插悔賀伍入Linux第1張安裝光碟,選擇/RedHat/RPMS目錄下的sendmail-8.12.8-4.i386.rpm安裝包,之後運行[root@ahpeng RPMS] # rpm -ivh sendmail-8.12.8-4.i386.rpm即可開始安裝,再用此方法在第3張安裝光碟的同目錄下依次安裝sendmail-cf.8.12.8-4.i386.rpm、sendmail-doc. 8.12.8-4.i386.rpm。 二.啟動Sendmail服務系統 筆者建議使用帶參數的Sendmail命令控制郵件伺服器的運行: [root@ahpeng root]#sendmail -bd –q12h -b:設定Sendmail服務運行於後台。 -d:指定Sendmail以Daemon(守護進程)方式運行。 -q:設定當Sendmail無法成功發送郵件時,就將郵件保存在隊列里,並指定保存時間。上面的12h表示保留12小時。 此外,要檢測Sendmail伺服器是否正常運行,可以使用命令行: [root@ahpeng root]# /etc/rc.d/init.d/sendmail status。 三.配置Sendmail sendmail.cf的配置語法比較難懂,一般資料上都是採用m4宏處理程序來生成所需的sendmail.cf文件(使用m4編譯工具一般不容易出錯,還可避免某些帶有安全漏洞的宏對伺服器造成的破壞)。其配置文件位於/etc/mail/sendmail.cf,在創建的過程中還需要一個模板文件,Linux自帶有一個模板文件,位於/etc/mail/sendmail.mc。故可以直接通過修改sendmail.mc模板來達到定製sendmail.cf文件的目的,而不必去死啃哪些難理解的配置命令。配置步驟為: 第一步:用模板文件sendmail.mc生成sendmail.cf配置文件,並導出到/etc/mail/目錄下,使用命令行:m4 /etc/mail/sendmail.mc >/etc/mail/sendmail.cf 第二步:再用[root@ahpeng root] /etc/rc.d/init.d/sendmail restart命令行重啟sendmail。 至此,郵件服務系統配置完成,已經正常工作。接下來拍返就是創建具體的帳戶了。
7. 在LINUX中么 怎麼配置一個內部的郵件系統,提供P0P3和SMTP收發方式,請把詳細的的步驟告訴我 ,非常感謝!
主要步驟:
1. 用以下命令查看系統是否安裝了sendmail:
[root@mail /root]# rpm –qa |grep sendmail
sendmail-8.11.0-8
2. 卸載sendmail:
[root@mail /root]# rpm -e sendmail –nodeps
3. 用以下命令殺死運行中的sendmail進程:
[root@mail /root]# killall sendmail
如果系統提示:
sendmail: no process killed
則說明當前系統中沒有sendmail進程。
4. 安裝postfix:
[root@mail /root]# rpm -ivh postfix-20010228release-2.i386.rpm
若已經安裝,則此步可以省略。(註:安裝時最好用rpm包,會自動創建postfix用戶和postfix組)
5. 安裝imap
rpm –ivh /mnt/cdrom/RedHat/RPMS/ imap-4.7c2-12.rpm
imap使pop3有效,即打開110埠。(註:安裝時最好用rpm包)
若已經安裝,則此步可以省略。
6. 檢查系統中是否安裝了cyrus-sasl
執行以下命令查看系統中是否安裝了cyrus-sasl:
rpm –qa |grep cyurs
如果您看到以下提示,則說明已經安裝了cyrus-sasl
[root@test bye2000]# rpm -qa |grep sasl
cyrus-sasl-devel-1.5.24-17
cyrus-sasl-1.5.24-17
否則,請用rpm –ivh 命令先安裝所需sasl-cyrus包。
7.修改postfix用戶
同時應該讓該用戶不能登錄到系統,也即不為該用戶指定可執行的登錄外殼程序和可用
的用戶宿主目錄。
編輯/etc/passwd文件中的相關條目如下所示:
postfix:x:89:89::/no/where:/no/shell [編輯後,只修改藍色部分就可以了]
即:修改用戶的Home directory和Shell 參照 /etc/passwd文件
8.編輯postfix的主要配置文件/etc/postfix/main.cf,根據需求只需修改以下幾個參數:
1)mydomain
指明你的域名,在這里我們指定:
mydomain = xx.com
2)myorigin
myorigin參數指明發件人所在的域名。如果你的用戶的郵件地址為[email protected],則該參數指定@後面的域名。在這里我們指定:
myorigin = $mydomain
3)inet_interfaces
inet_interfaces = all 監聽所有埠
4)mydestination
mydestination參數指定postfix接收郵件時收件人的域名,換句話說,也就是你的postfix
系統要接收什麼樣的郵件。通常與myorigin一樣:
mydestination = $mydomain
5)mynetworks_style
設置網路類型,我們指定:
mynetworks_style = subnet
6)ynetworks
定義可以使用的此smtp伺服器發信的客戶ip地址,因為公司的ip范圍已知,所以我們
指定:
mynetworks = 192.168.1.0/24
註:此項可根據情況而定,主要是指定ip范圍,假如公司的ip劃分是按照網段來的,例如:10.10.1.0~10.10.1.9,10.10.3.0~10.10.3.9等等更細。根據需要,該項可以不設置。
7)SMTP的配置
為了告訴postfix採用sasl來進行SMTP的用戶認證,我們必須在/etc/postfix/main.cf文件的最後添加以下幾行:
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_auth_destination reject
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
說明如下:
smtpd_sasl_auth_enable:告訴SMTP客戶,該SMTP伺服器需要進行用戶認證。
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_auth_destination reject
僅僅中繼通過SMTP認證的客戶端郵件,以及接收本postfix為最後一站的郵件。
broken_sasl_auth_clients = yes
有一些Microsoft 的SMTP客戶端,比如Outlook Express 4.X採用的是非標準的SMTP認證協議,將該選項設置為yes可以解決這類不兼容問題。
smtpd_sasl_security_options = noanonymous
控制本地SMTP認證所採用的機制,這里是允許任何非匿名認證方法。
9.配置SASL
進入/usr/lib/sasl/目錄,用touch新建這樣一個文件:
[root@test sasl]# touch smtpd.conf
在該文件中加入以下內容:
[root@test sasl]# more smtpd.conf
pwcheck_method:pam
也就是指定通過PAM來進行用戶認證。
10.配置PAM
進入/etc/pam.d/目錄,用touch新建這樣一個文件:
[root@test pam.d]# touch smtp
在該文件中加入如下內容:
[root@test pam.d]# more smtp
#%PAM-1.0
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
也即和/etc/pam.d/pop文件的內容是一致的。
11.修改/etc/shadow文件許可權
因為PAM最終要去讀取/etc/shadow文件的內容來進行用戶認證,但是/etc/shadow文件
許可權是設置為只有root用戶可以讀寫,而我們的postfix是運行在postfix用戶許可權之下,所以我們要合理的設置/etc/shadow文件許可權,以便讓pam可以讀取其內容。
執行以下命令,讓root組也可以讀取shadow:
[root@test /etc]# chmod 640 /etc/shadow
然後再將postfix用戶加入root組,採用以下命令:
[root@test /etc]# usermod -G root postfix
12.編輯postfix的主要配置文件/etc/postfix/master.cf
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
這里開始
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission inet n - n - - smtpd
# -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
這里結束
#628 inet n - n - - qmqpd
把我標的注釋部分去掉即可。
13.配置pop3
RedHat7.0已經使用xinetd代替了以前的inetd,為了使pop3服務啟動,我們編輯
/etc/xinetd.d/ipop3文件,將其中的disable = yes改為disable = no 以便啟動pop3
服務。
為了使改動生效,執行以下命令:
/etc/rc.d/init.d/xinetd reload
14.啟動postfix
執行以下命令啟動postfix:
/etc/rc.d/init.d/postfix start
這樣,一個支持SMTP認證的postfix郵件伺服器就配好了。
8. 141Linux 安裝及配置郵件伺服器
效果截圖
Sendmail :sendmail 是最古老的 MTA(Mail Transfer Agent,電子郵件系統)之一,最早它誕生的時候,Internet 還沒有被標准化,當時主機之間使用的是 UUCP 技術來交換郵件。它被設計得比較靈活,便於配置和運行於各種類型的機器。
Qmail :qmail 是新生一代的 MTA 代表,它以速度快、體積小、易配蘆巧置安裝等特性而著稱。作者 D.J.Bernstein 是一個數學教授,富有傳奇色彩。他於 1995 年開發 qmail,1996 年發布 0.70 版,並使用了多種當時比較先進的 技術,包括 Maildir,與 sendmail 單個 binary 不同的模塊化設計,許可權分離,以及使用了大量由他編寫的配套工具,如 daemontool,ucsip-tcp 等。qmai 迅速成為了 Internet 上最有名的 MTA,使用者眾。
postfix :postfix 如今已經獨樹一幟,流水線、模塊化缺灶的設計,兼顧了效率和功能。靈活的配置和擴展,使得配置 postfix 變得富有趣味。其主要的特點是速度快、穩定,而且配置/功能非常強大,並和 sendmail 類似,提供了與外部程序對接伏嘩扮的 API/protocol。尤其是配置部分,postfix 另一個優勢是至今依然保持活躍的開發工作,而且穩步發展,適合高流量大負載的系統,擴充能力較強。本實驗也是基於 postfix 伺服器軟體來實現。
郵件伺服器基本的工作原理
MUA(Mail User Agent):向外發送郵件,以及提供用戶瀏覽與編寫郵件的功能。
MTA(Mail Transfer Agent):(可以理解為 smtpd 伺服器)幫忙將用戶的郵件傳遞出去或接收進來。
MDA(Mail Delivery Agent):將接收下來的郵件存放到對應用戶郵筒當中的程序。通過分析 MTA 所收到郵件的表頭或內容,來判斷此郵件是屬於哪個用戶,然後決定將此郵件投遞給哪個用戶的郵筒里。
MRA(Mail Retrieval Agent):通過 MRA 伺服器提供的郵政服務協議(POP)來接收自己的郵件。
郵件中繼:
SMTPD 要支持郵件路由功能,需要打開 Open Relay 開放式中繼。
SMTPD 是根據收件人判斷郵件是否需要中繼,而且只給指定的客戶端中繼。
註:當 DNS 上存在多個 MX 記錄的主機這時就是根據 DNS 的郵件級判斷了。DNS 上定義的值越小,其優先順序越高。輔助交換器接受到郵件並不能保存郵件。而是這個輔助交換器會等到主郵件交換器空閑的時候把代替它接受下來的郵件在轉給主郵件交換器。所以任何郵件處理都是主郵件交換器處理的。所以我們實際情況下,如果有 2 台伺服器做郵件交換器,性能比較高的應該為主的。
安裝配置過程中,postfix 通過 Internet 發送和接收 email,並存儲在用戶郵箱里。同時客戶也可以通過 IMAP 或者 POP3 恢復他們的郵件。其中的客戶認證是通過 Courier Authdaemon 模塊的。下圖表示出了這個過程:
出現安裝界面時,首先按下 <tab> 鍵切換到確定,然後按下回車。
安裝 postfix 的時候會問你安裝的伺服器類型,對於我們的需要,我們選擇默認的 Internet Site,這是最符合我們的伺服器類型,然後按下回車確認。
使用 vim 編輯配置文件:
大概在第 31 行,編輯 myhostname,修改為 myhostname = shiyanlou.com。
然後我們把alias_map參數修改為 alias_maps = hash:/etc/postfix/virtual,之後會講解virtual裡面填寫什麼。
之後設置mynetworks段落,它定義可以使用這台伺服器的主機,我們這里就用默認的本地地址。你也可設置為其他地址。
編輯完成後按下 Esc 鍵,輸入 :wq 保存退出。
此命令創建了一個用戶 master,其中 -d 和 -m 選項用來為登錄名 master 產生一個主目錄 /usr/master(/usr 為默認的用戶主目錄所在的父目錄)。
我們編寫之前設置的 virtual 文件,這些郵箱地址是用來傳送郵件的。
在這個文件里,我們將設置一個表,對應相關的郵件地址。
完成後保存關閉文件。
我們可以通過調用下面這個命令來實現我們的映射:
接著我們重啟 postfix,完成我們的修改:
我們可以用 shiyanlou 這個賬號給 master 這個賬號發一封郵件。首先我們需要安裝一個命令行收發郵件的軟體 mailutils 。
寫一封郵件
輸入如下內容:
其中 -s 參數是指郵件的標題,< 後面是將要發送的郵件內容從 hello.txt 中重定向。這個命令如果正確執行不會有輸出。
然後我們切換到 master 用戶,查看我們的郵件。
按下回車建可以查看郵件內容,輸入 quit 即可退出郵箱。
Linux 郵件伺服器原理介紹,編譯安裝 Postfix 實現本地的郵件服務
Ubuntu 伺服器指南-郵件服務-Postfix
how-to-run-your-own-mail-server-with-mail-in-a-box-on-ubuntu-14-04