導航:首頁 > 編程系統 > linuxsmtp擴展安裝

linuxsmtp擴展安裝

發布時間:2023-05-22 21:02:25

linux下如何安裝郵件系統postfixlinux下如何對郵件系統postfix設置

postfix的安裝過程
3.1原始碼包的安裝
1. 獲取postfix的原始碼包
從postfix官方站點www.postfix.org取得postfix的原始碼包postfix-19991231-pl08.tar.gz。將其拷貝到/tmp
2.解開原始碼包,將生成/tmp/ postfix-19991231-pl08目錄。
tar xvzf postfix-19991231-pl08.tar.gz
3.編譯原始碼包
cd /tmp/ postfix-19991231-pl08
make
4.建立一個新用戶「postfix」,該用戶必須具有唯一的用戶id和組id號,同時應該讓該用戶不能登錄到系統,也即不為該用戶指定可執行的登錄外殼程式和可用的用戶宿主目錄。我們能先用adser postfix 添加用戶再編輯/etc/passwd文件中的相關條目如下所示:
postfix:*:12345:12345:postfix:/no/where:/no/shell
5.確定/etc/aliases文件中包含如下的條目:
postfix: root
6. 以root用戶登錄,在/tmp/ postfix-19991231-pl08目錄下執行命令:
./install.sh
7. 啟動postfix
# postfix start
8.關於maildrop目錄許可權的說明:
postfix能使用一個所有用戶都可寫的(也即目錄許可權為1773)的maildrop
目錄來讓本地用戶提交郵件。這種方法避免了使用set-uid 或 set-gid 軟體,並且在郵件系統不可用時,用戶仍然能提交郵件。其他用戶沒有訪問該目錄中的隊列文件的許可權。接收來自網路的郵件時postfix不使用maildrop目錄。不過,由於該目錄的許可權是733,其他用戶能建立一個硬連接到該目錄中的文件從而導致該郵件被投遞多次或無法刪除,也就是說這將導致安全性問題。如果你想要使用這種方式來讓用戶提交郵件,就要在install.sh 腳本問你是否需要set-gid 時回答no。
如果你的系統有多個用戶的話,最佳取消以上的方式而採用利用set-gid 用
戶許可權提交郵件的方式。這時,我們首先需要建立一個組id唯一的組"maildrop" 並且確定該組中沒有用戶成員。然後在install.sh 問你是否需要set-gid 時指定"maildrop"。
提示:在安裝postfix之前,請刪除已安裝的sendmail。

3.2 rpm包的安裝
1. 獲取postfix的rpm軟體包。
我們能從http://www.alltrading.es/postfix/rpms/i386/ 獲得postfix的rpm軟體包。當前的最新版本是postfix-20000531-2.i386.rpm。
2. 備份你的/etc/aliases和/etc/aliases.db,因為postfix要使用該別名資料庫
3. 用以下命令查看系統是否安裝了sendmail:
[root@mail /root]# rpm -qa |grep sendmail
sendmail-doc-8.9.3-15
sendmail-8.9.3-15
sendmail-cf-8.9.3-15
4. 用以下命令強行卸載sendmail:
[root@mail /root]# rpm -e sendmail sendmail-cf sendmail-doc --nodeps
5. 用以下命令殺死運行中的sendmail進程:
[root@mail /root]# killall sendmail
6. 安裝postfix:

7. 啟動postfix
[root@mail /root]# /etc/rc.d/init.d/postfix start

3.3 設置系統每次啟動時自動啟動postfix
1.如果你安裝的是postfix的原始碼包,能在/etc/rc.d/rc.local文件中加入如下的語句讓系統每次啟動時自動啟動postfix:
if [ -f /usr/libexec/postfix ]; then
/usr/libexec/postfix start
fi
2.如果你安裝的是postfix的rpm包,能通過setup命令來設置在系統啟動時啟動postfix。
四、 postfix的設置詳解
4.1 postfix的設置文件結構
postfix的設置文件位於/etc/postfix下,安裝完postfix以後,我們能通過ls命令查看postfix的設置文件:
[root@mail postfix]# ls
install.cf main.cf master.cf postfix-script

這四個文件就是postfix最基本的設置文件,他們的差別在於:
mail.cf:是postfix主要的設置文件。
install.cf:包含安裝過程中安裝程式產生的postfix初始化設置。
master.cf:是postfix的master進程的設置文件,該文件中的每一行都是用來設置postfix的組件進程的運行方式。
postfix-script:包裝了一些postfix命令,以便我們在linux環境中安全地執行這些postfix命令。

4.2 postfix的基本設置
postfix大約有100個設置參數,這些參數都能通過main.cf 指定。設置的格式是這樣的,用等號連接參數和參數的值。如:
myhostname = mail.mydomain.com
等號的左邊是參數的名稱,等號的右邊是參數的值; 當然,我們也能在參數的前面加上$來引用該參數,如:
myorigin = $myhostname
雖然postfix有100個左右的參數,不過postfix為大多數的參數都設置了預設值,所以在讓postfix正常為你服務之前,你只需要設置為數不多的幾個參數。下面我們一起來看一看這些基本的postfix參數。需要注意的是,一旦你更改了main.cf文件的內容,則必須運行postfix reload命令使其生效。

1. myorigin
myorigin參數指明發件人所在的域名。如果你的用戶的郵件地址為[email protected],則該參數指定@後面的域名。預設地,postfix使用本地主機名作為myorigin,不過建議你最佳使用你的域名,因為這樣更具有可讀性。比如:安裝postfix的主機為mail.domain.com則我們能這樣指定myorigin:
myorigin = domain.com
當然我們也能引用其他參數,如:
myorigin = $mydomain

2. mydestination
mydestination參數指定postfix接收郵件時收件人的域名,換句話說,也就
是你的postfix系統要接收什麼樣的郵件。比如:你的用戶的郵件地址為[email protected], 也就是你的域為domain.com, 則你就需要接收所有收件人為[email protected]的郵件。和myorigin相同,預設地,postfix使用本地主機名作為mydestination。
3. notify_classes
在postfix系統中,必須指定一個postfix系統管理員的別名指向一個用戶,
只有這樣,在用戶遇見問題時才有報告的對象,postfix也才能將系統的問題報告給管理員。notify_classes參數就是用來指定向postfix管理員報告錯誤時的信息級別。共有以下幾種級別:

bounce:將不能投遞的郵件的拷貝發送給postfix管理員。出於個人隱私的緣故,該郵件的拷貝不包含信頭。

2bounce:將兩次不可投遞的郵件拷貝發送給postfix管理員。

delay:將郵件的投遞延遲信息發送給管理員,僅僅包含信頭。

policy:將由於uce規則限制而被拒絕的用戶請求發送給postfix管理員,包含整個smtp會話的內容。

protocol:將協議的錯誤信息或用戶企圖執行不支持的命令的記錄發送給postfix管理員。同樣包含整個smtp會話的內容。

resource:將由於資源錯誤而不可投遞的錯誤信息發送給postfix管理員,比如:隊列文件寫錯誤等等。

software:將由於軟體錯誤而導致不可投遞的錯誤信息發送給postfix管理員。

預設值為:
notify_classes = resource, software

4.myhostname
myhostname 參數指定運行postfix郵件系統的主機的主機名。預設地,該值被設定為本地機器名。你也能指定該值,需要注意的是,要指定完整的主機名。如:
myhostname = mail.domain.com

5.mydomain
mydomain參數指定你的域名,預設地,postfix將myhostname的第一部分刪除而作為mydomain的值。你也能自己指定該值,
6.mynetworks
mynetworks 參數指定你所在的網路的網路地址,postfix系統根據其值來差別用戶是遠程的還是本地的,如果是本地網路用戶則允許其訪問。你能用標準的a、b、c類網路地址,也能用cidr(無類域間路由)地址來表示,
7.inet_interfaces
inet_interfaces 參數指定postfix系統監聽的網路介面。預設地,postfix監聽
所有的網路介面。如果你的postfix運行在一個虛擬的ip地址上,則必須指定其監聽的地址。
4.3 postfix的uce(unsolicited commercial email)控制
所謂uce控制就是指控制postfix接收或轉發來自於什麼地方的郵件。

預設地,postfix轉發符合以下條件的郵件:
* 來自客戶端ip地址符合$mynetworks的郵件。
* 來自客戶端主機名符合$relay_domains及其子域的郵件。
* 目的地為$relay_domains及其子域的郵件。

預設地,postfix接受符合以下條件的郵件:
* 目的地為$inet_interfaces的郵件。
* 目的地為$mydestination的郵件。
* 目的地為$virtual_maps的郵件。
不過我們也能通過下面的規則來實現更強大的控制功能。

1. 信頭過濾
通過header_checks參數限制接收郵件的信頭的格式,如果符合指定的格式,則拒絕接收該郵件。能指定一個或多個查詢列表,如果新郵件的信頭符合列表中的某一項則拒絕該接收郵件。
2.客戶端主機名/地址限制
通過smtpd_client_restrictions參數限制能向postfix發起smtp 連接的客戶端的主機名或ip地址。能指定一個或多個參數值,中間用逗號隔開。限制規則是按照查詢的順序進行的,第一條符合條件的規則被執行。
3. 是否請求helo命令
能通過smtpd_helo_required參數指定客戶端在smtp會話的開始是否發
送一個helo命令。你能指定該參數的值為yes或no。
4. helo主機名限制
能通過smtpd_helo_restrictions參數指定客戶端在執行helo命令時發送
給postfix的主機名。預設地,postfix接收客戶端發送的任意形式的主機名。能指定一個或多個參數值,中間用逗號隔開。限制規則是按照查詢的順序進行的,第一條符合條件的規則被執行。
5. rfc 821信頭限制
rfc 821對郵件的信頭做了嚴格的規定,不過廣泛使用的sendmail並不支
持該規定,所以對於該參數我們只能說不,
6. 通過發件人地址進行限制
能用smtpd_sender_restrictions參數通過發件人在執行mail from命令時提供的地址進行限制。能指定一個或多個參數值,中間用逗號隔開。限制規則是按照查詢的順序進行的,第一條符合條件的規則被執行。
reject_unknown_sender_domain:如果mail from命令提供的主機名在dns中沒有相應的a 或 mx 記錄則拒絕該客戶端的連接請求。能用unknown_address_reject_code參數指定返回給客戶機的錯誤代碼(預設為450)。

check_sender_access maptype:mapname:根據mail from命令提供的主機名、父域搜索access資料庫。如果搜索的結果為reject 或 "[45]xx text" 則拒絕該客戶端的連接請求;如果搜索的結果為ok、relay 或數字則接受該客戶端的連接請求。能用access_map_reject_code參數指定返回給客戶機的錯誤代碼(預設為554)。能通過該參數過濾來自某些不受歡迎的發件人的郵件。

reject_non_fqdn_sender:如果mail from命令提供的主機名不是rfc規定的完整的域名則拒絕客戶端的連接請求。能用non_fqdn_reject_code 參數指定返回給客戶機的錯誤代碼(預設為504)。
預設地,postfix接受來自所有發件人的郵件。

7. 通過收件人地址進行過濾
能用smtpd_recipient_restrictions參數通過發件人在執行rcpt to命令
時提供的地址進行限制。預設值為:
smtpd_recipient_restrictions = permit_mynetworks, check_relay_domains
能指定一個或多個參數值,中間用逗號隔開。限制規則是按照查詢的順序
進行的,第一條符合條件的規則被執行。可用的規則有:

check_relay_domains:如果符合以下的條件,則接受smtp連接請求,否則拒絕該連接,能用relay_domains_reject_code 參數指定返回給客戶機的錯誤代碼(預設為504)。
* 客戶端主機名符合$relay_domains及其子域
* 目的地為$inet_interfaces、$mydestination或$virtual_maps

permit_auth_destination:不管客戶端的主機名,只要符合以下的條件,就
接受smtp連接請求:
* 解析後的目標地址符合$relay_domains及其子域
* 解析後的目標地址符合$inet_interfaces、$mydestination或$virtual_maps

reject_unauth_destination:不管客戶端的主機名,只要符合以下的條件,
就拒絕該客戶端smtp連接請求:
* 解析後的目標地址符合$relay_domains及其子域
* 解析後的目標地址符合$inet_interfaces、$mydestination或$virtual_maps

check_recipient_access:根據解析後的目標地址、父域搜索access資料庫。如果搜索的結果為reject 或 "[45]xx text" 則拒絕該客戶端的連接請求;如果搜索的結果為ok、relay 或數字則接受該客戶端的連接請求。能用access_map_reject_code參數指定返回給客戶機的錯誤代碼(預設為554)。

reject_unknown_recipient_domain:如果收件人的郵件地址在dns中沒有相應的a 或 mx 記錄則拒絕該客戶端的連接請求。能用unknown_address_reject_code參數指定返回給客戶機的錯誤代碼(預設為450)。

reject_non_fqdn_recipient:如果發件人在執行rcpt to命令時提供的地址
不是完整的域名則拒絕其smtp連接請求。能用the non_fqdn_reject_code參數指定返回給客戶機的錯誤代碼(預設為504)。

Ⅱ 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。。。

Ⅲ 如何在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 "發送失敗!
";
}
?>

Ⅳ Ubuntu架設Smtp伺服器

Winmail 郵件伺服器軟體讓您輕松架設郵件系統 www.magicwinmail.com用Win 2003系統架設郵件伺服器很多企業區域網內都架設了郵件伺服器,用於進行公文發送和工作交流。但使用專業的企業郵件系統軟體需要大量的資金投入,這對於很多企業來說是無法承受的。其實我們可以通過Windows Server 2003提供的POP3服務和SMTP服務架設小型郵件伺服器來滿足我們的需要。 一、安裝POP3和SMTP服務組件 Windows Server 2003默認情況下是沒有安裝POP3和SMTP服務組件的,因此我們要手工添加。 1.安裝POP3服務組件 以系統管理員身份登錄Windows Server 2003 系統。依次進入「控制面板→添加或刪除程序→添加/刪除Windows組件」,在彈出的「Windows組件向導」對話框中選中「電子郵件服務」選項,點擊「詳細信息」按鈕,可戚搏以看到該選項包括兩部分內容:POP3服務和POP3服務Web管理。為方便用戶遠程Web方式管理郵件伺服器,建議選中「POP3服務Web管理」。 2.安裝SMTP服務組件 選中「應用程序伺服器」選項,點擊「詳細信息」按鈕,接著在「Internet信息服務(IIS)」選項中查看詳細信息,選中「SMTP Service」選項,最後點擊「確定」按鈕。此外,如果用戶需要對郵件伺服器進行遠程Web管理,一定要選中「萬維網服務」中的「遠程管理(HTML)」組件。完成以上設置後,點擊「下一步」按鈕,系統就開始安裝配置POP3和SMTP服務了。 二、配置POP3伺服器 1.創建郵件域 點擊「開始→管理工具→POP3服務」,彈出POP3服務控制台窗口。選中左欄中的POP3服務後,點擊右欄中的「新域」,彈出「添加域」對話框,接著在「域名」欄中輸入郵件伺服器的域名,也就是郵件地址「@」後面的部分,如「rtj.net」,最後點擊「確定」按鈕。其中「rtj.net」為在Internet上注冊的域名,並且該域名在DNS伺服器中設置了MX郵件交換記錄,解析到Windows Server 2003郵件伺服器IP地址上。 2.創建用戶郵箱 選中剛才新建的「rtj.net」域,在右欄中點擊「添加郵箱」,彈出添加郵箱對話框,在「郵箱名」欄中輸入郵件用戶名,然後設置用戶密碼,最後點擊「確定」按鈕,完成郵箱的創建。 三、配置SMTP伺服器 完成POP3伺服器的配置後,就可開始配置SMTP伺服器了。點擊「開始→程序→管理工具→Internet信息服務(IIS)管理器」,在「IIS管理器」窗口中右鍵點擊「默認SMTP虛擬伺服器」選項,在彈出的菜單中選中「屬性」,進入「默認SMTP虛擬伺服器」窗口,切換到「常規」標簽頁,在「IP地址」下拉列表框中選中郵件伺服器的IP地址即可。點擊「確定」按鈕,這樣一個簡單的郵件伺服器就架設完成了。 完成以上設置後,用戶就可以使用郵件客戶端軟體連接郵件伺服器進行郵件收發工作了。在設置郵件客戶端軟體的SMTP和POP3伺服器地址時,輸入郵件伺服器的域名「rtj.net」即可。 四、遠程Web管理 Windows Server 2003還支持對郵件伺服器的遠程Web管理。在遠端客戶機中,運行IE瀏覽器,在地址欄中輸入「https:凱耐//伺服器IP地址:8098」,將會彈出連接對話框,輸入管高孫祥理員用戶名和密碼,點擊「確定」按鈕,即可登錄Web管理界面。

Ⅳ Linux怎麼安裝配置Postfix

安裝Postfix
在安裝過程中我假設你的域名是 yourdomain.com 它有一個有效的郵件交換記錄 mail.yourdomain.com. 記得用你自己的真實域 yourdomain.com 來替換這份指南中的示例. 我假設你也同樣清楚什麼是郵件交換記錄. 你可以在終端鍵入下述代碼用以查看Mail Exchanger:
dig mx yourdomain.com

安裝postfix

sudo apt-get install postfix

安裝mailx軟體包 mailx軟體包是一個命令行的郵件屬性程序,mail命令包含在mailx軟體包裡面

sudo apt-get install mailutils

測試你的默認設置
首先添加一個用戶. (這里以fmaster為例)
sudo useradd -m -s /bin/bash fmaster
sudo passwd fmaster

用下面的命令測試,其實就是測試25埠是否打開
telnet localhost 25

Postfix將在終端中顯示如下提示,這樣你就可以用來鍵入SMTP命令.
Trying 127.0.0.1...
Connected to mail.fosse.org.
Escape character is '^]'.
220 localhost.localdomain ESMTP Postfix (Ubuntu)

用下面的命令測試postfix
ehlo localhost
mail from: root@localhost
rcpt to: fmaster@localhost
data
Subject: My first mail on Postfix
Hi,
Are you there?
regards,
Admin
. (Type the .[dot] in a new Line and press Enter )
quit

檢查剛才創建的fmaster用戶的收件箱
su - fmaster
mail

當你鍵入 mail 命令時,你的終端中將顯示如下信息.
Mail version 8.1.2 01/15/2001. Type ? for help.
"/var/mail/fmaster": 2 messages 2 new
>N 1 root@localhost Mon Mar 6 12:49 13/479 Just a test
N 2 root@localhost Mon Mar 6 12:51 15/487 My first mail
&

你會發現郵件將用數字進行索引,你可以通過鍵入郵件相對應的數字來打開你想閱讀的郵件。 比如鍵入 "2" 就可以打開閱讀第二封郵件. 鍵入 "q"可以退出 郵件將會以mbox 文件保存在用戶的個人目錄. 根據我們的示例,這個目錄為 /home/fmaster/mbox.
所有在郵箱的信件都是儲存於一個叫"MBOX"類型的檔案文件中。每封郵件的開頭皆是由一條線跟"From"來組成前五個字元,而每封訊息的結尾皆會被追加一個空行以進行表示。

Ⅵ 如何在 Linux 上使用 Gmail SMTP 伺服器發送郵件通知

假定你想配置一個 Linux 應用,用於從你的伺服器或桌面客戶端發送郵件信息。郵件信息可能是郵件簡報、狀態更新(如 Cachet)、監控警報(如 Monit)、磁碟時間(如 RAID mdadm)等等。當你要建立自己的 郵件發送伺服器 傳遞信息時 ,你可以替代使用一個免費的公共 SMTP 伺服器,從而避免遭受維護之苦。

谷歌的 Gmail 服務就是最可靠的 免費 SMTP 伺服器 之一。想要從應用中發送郵件通知,你僅需在應用中添加 Gmail 的 SMTP 伺服器地址和你的身份憑證即可。

使用 Gmail 的 SMTP
伺服器會遇到一些限制,這些限制主要用於阻止那些經常濫用伺服器來發送垃圾郵件和使用郵件營銷的傢伙。舉個例子,你一次只能給至多 100
個地址發送信息,並且一天不能超過 500
個收件人。同樣,如果你不想被標為垃圾郵件發送者,你就不能發送過多的不可投遞的郵件。當你達到任何一個限制,你的 Gmail
賬戶將被暫時的鎖定一慎戚天。簡而言之,Gmail 的 SMTP 伺服器對於你個人的使用是非常棒的,但不適合商業的批量郵件。

說了這么多,是時候向你們展示 如何在 Linux 環境下使用 Gmail 的 SMTP 伺服器 了。

Google Gmail SMTP 伺服器設置

如果你想要通過你的應用使用 Gmail 的 SMTP 伺服器發送郵件,請牢記接下來的詳細說明。祥好

郵件發送伺服器 (SMTP 伺服器): smtp.gmail.com
使用認證: 是
使用安全連接: 是
用戶名: 你的 Gmail 賬戶 ID (比如 "alice" ,如果你的郵箱為 [email protected]
密碼: 你的 Gmail 密碼
埠: 587

確切的配置根據應用會有所不同。在本教程的剩餘部分,我將向你展示一些在 Linux 上使用 Gmail SMTP 伺服器的應用示例。

從命令行發送郵件

作為第一個例子,讓我們嘗試最基本的郵件功能:使用 Gmail SMTP 伺服器從命令行發送一封郵件。為此,我將使用一個稱為 mutt 的命令行郵件客戶端。

先安裝 mutt:

對於 Debian-based 系統:
$ sudo apt-get install mutt

對於 Red Hat based 系統:
$ sudo yum install mutt

創建一個 mutt 配置文件(~/.muttrc),並和下面一樣,在文件中指定 Gmail SMTP 伺服器信息。將 <gmail-id> 替換成寬宴陵自己的 Gmail ID。注意該配置只是為了發送郵件而已(而非接收郵件)。
$ vi ~/.muttrc
set from = "<gmail-id>@gmail.com"set realname = "Dan Nanni"set smtp_url = "smtp://<gmail-id>@smtp.gmail.com:587/"set smtp_pass = "<gmail-password>"

一切就緒,使用 mutt 發送一封郵件:
$ echo "This is an email body." | mutt -s "This is an email subject" [email protected]

想在一封郵件中添加附件,使用 "-a" 選項
$ echo "This is an email body." | mutt -s "This is an email subject" [email protected] -a ~/test_attachment.jpg

使用 Gmail SMTP 伺服器意味著郵件將顯示是從你 Gmail 賬戶發出的。換句話說,收件人將視你的 Gmail 地址為發件人地址。如果你想要使用自己的域名作為郵件發送方,你需要使用 Gmail SMTP 轉發服務。

當伺服器重啟時發送郵件通知

如果你在 虛擬專用伺服器(VPS)
上跑了些重要的網站,建議監控 VPS 的重啟行為。作為一個更為實用的例子,讓我們研究如何在你的 VPS
上為每一次重啟事件建立郵件通知。這里假設你的 VPS 上使用的是 systemd,並向你展示如何為自動郵件通知創建一個自定義的 systemd
啟動服務。

首先創建下面的腳本 reboot_notify.sh,用於負責郵件通知。
$ sudo vi /usr/local/bin/reboot_notify.sh

#!/bin/sh

echo "`hostname` was rebooted on `date`" | mutt -F /etc/muttrc -s "Notification on `hostname`" [email protected]
$ sudo chmod +x /usr/local/bin/reboot_notify.sh

在這個腳本中,我使用 "-F" 選項,用於指定系統級的 mutt 配置文件位置。因此不要忘了創建 /etc/muttrc 文件,並如前面描述的那樣填入 Gmail SMTP 信息。

現在讓我們創建如下一個自定義的 systemd 服務。
$ sudo mkdir -p /usr/local/lib/systemd/system$ sudo vi /usr/local/lib/systemd/system/reboot-task.service

[Unit]
Description=Send a notification email when the server gets rebooted
DefaultDependencies=no
Before=reboot.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/reboot_notify.sh

[Install]
WantedBy=reboot.target

在創建服務後,添加並啟動該服務。
$ sudo systemctl enable reboot-task$ sudo systemctl start reboot-task

從現在起,在每次 VPS 重啟時,你將會收到一封通知郵件。

通過伺服器使用監控發送郵件通知

作為最後一個例子,讓我展示一個現實生活中的應用程序,Monit,這是一款極其有用的伺服器監控應用程序。它帶有全面的 VPS 監控能力(比如 CPU、內存、進程、文件系統)和郵件通知功能。

如果你想要接收 VPS 上由 Monit 產生的任何事件的郵件通知,你可以在 Monit 配置文件中添加以下 SMTP 信息。

set mailserver smtp.gmail.com port 587
username "<your-gmail-ID>" password "<gmail-password>"
using tlsv12

set mail-format {
from: <your-gmail-ID>@gmail.com
subject: $SERVICE $EVENT at $DATE on $HOST
message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION.

Yours sincerely,
Monit
}

# the person who will receive notification emails
set alert [email protected]

這是一個因為 CPU 負載超載而由 Monit 發送的郵件通知的例子。

Ⅶ 在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郵件伺服器就配好了。

Ⅷ linux下的sendmail如何配置

sendmail的功能強大,配置起來也十分繁瑣。本例僅介紹如何架設小型的區域網電子郵局。
1、設置sendmail 作為守衛進程(daemon)啟動
可以使用以下命令來確認 sendmail 是否已經啟動:ps –A|grep sendmail
如果啟動了 sendmail,那麼這個命令將顯示出它的相關信息。如果沒有啟動,則需要在/etc/rc.d/rc.net 文件中加上如幾行代碼:
if [-f /usr/lib/sendmail ];
then(cd /usr/spool/mqueue;rm –f if *)
/usr/lib/sendmail-bd-qlh;echo –n 『sendmail』>/dev/console
fi
2、設置sendmail.cf
sendmail.cf是sendmail的配置文件。在安裝了 Linux 系統之後,它將自動生成一個適合本系統使用的 sendmail.cf 文件,位於/etc/sendmail.cf
3、開啟SMTP、POP 埠
在默認情況下,SMTP 埠是打開的,而 POP埠是關閉的,我們必須將它打開:
1)用 root(超級許可權)登錄到伺服器上;
2)編輯文件/etc/inetd.conf;
3)找到描述 POP 埠的語句:#pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop3d
4)將 POP3的描述語句那一行的注釋號「#」去掉。
5)如果沒有找到,就手工補上這一行;(另外,我們還可以驗證一下是否存在 SMTP埠的描述語句) ;
6)存檔後退出。
7)運行 inetd 命令,使得設置生效。
8)用以下命令驗證,看 POP3 埠是否打開(生效):netstat –a |grep pop
如果打開的話,可以看到以下信息:tcp 0 0 *:pop3 *:* LISTEN
4、為新用戶開E-Mail 帳號
在 Linux 中開設 E-Mail 帳號十分簡單,只要在 Linux 系統中新增一個用戶即可。該用戶帳號和密碼就是E-Mail 的帳號和密碼。如:為新用戶 guest 開一個E-Mail帳號,用以下命令即可:
adser guest passwd guest
這樣,該新用戶的 E-Mail 地址就是:[email protected] ;密碼為:guest
5、為E-Mail 帳號設置別名
如果某個用戶想使用多個 E-Mail 地址,可通過設置別名的方法來實現。比:用戶「杜
方冬」想同時擁有 E-Mail 地址:[email protected] ;[email protected] ;[email protected]
就可通過以下步驟來實現這樣的別名設置:
1)以 root 登錄伺服器;
2)新增一個賬號 dfd;
3)編輯文件/etc/aliases,加上兩行:
fd:dfd
fd2000:dfd
4)存檔退出;
5)執行命令: newaliases
這樣,用戶杜方冬就擁有三個郵件地址,杜方冬只需使用一個E-Mail 帳號:[email protected]就可以接收所有寄給以上三個E-Mail 郵件地址的電子郵件。
6、郵箱空間的限定
如果你想控制用戶郵箱空間的大小,可以對它進行限定。實現方法是利用磁碟限額功能來實現的。電子郵件的暫存空間是在/var/spool/mail 目錄下,只要通過磁碟限額設定每一個用戶在這個目錄下能使用的最大空間就可以了。

Ⅸ Linux Fedora8 的E-mail伺服器怎麼配置

一、DNS伺服器的配置
1、物咐在正向解析記錄中要有mail的A記錄或者別名記錄
chkconfig --level 35 named on 二、Sendmail伺服器的安裝
1、安裝第4張光碟的sendmail-cf、sendmail-doc
2、cd /etc/mail
備份主配置文件:
cp sendmail.cf sendmail.cf.raw
makemap hash access.db <游寬 access
aliases
3、添加完整的域名和別名
vi /etc/hosts
添加 192.168.1.30 mail.sina.com mail
vi /etc/mail/local-host-names
添加 sina.com (添加郵件伺服器提供郵件服務的域名)
4、vi +105(116) /etc/mail/sendmail.mc
105行神螞亮
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
//修改為
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
48+49行(52)
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
//去除行首的注釋標記「dnl」,修改為
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl5、service saslauthd start SMTP 郵件認證機制
----Simple Authentication and Security Layer (SASL)
chkconfig --level 35 saslauthd on6、groupadd mailuser
adser -g mailuser -s /sbin/nologin mike
passwd mike
7、m4 sendmail.mc > sendmail.cf
8、service sendmail start
chkconfig --level 35 sendmail on
9、安裝POP3服務
system-config-packages dovecot
10、vi /etc/dovecot.conf
//將以下配置14行(20)
#protocols = imap imaps
//修改為
protocols = imap imaps pop3 pop3s
(imaps tcp-993 pop3s tcp-995 smtps tcp-465 )
SSL version of your existing POP3 server for port 995 (pop3s)
11、service dovecot restart
chkconfig --level 35 dovecot on

Ⅹ 如何在Linux下使用Evolution收發Email

1. 安裝Evolution
Evolution是一個整合了郵件,日歷,計劃任務,地址本功能的套件。以root身份運行apt-get install evolution就可以安裝上Evolution了。
2. 設置Email賬號
從任務欄的Application(程序)菜單中選擇運行Evolution,然後從Evolution的Edit(編輯)菜單中選擇Preferences(首選項)打開Evolution Settings設置窗口。點擊的Mail Accounts,再點擊Add按鈕啟動Evolution Account Assistant添加賬號。


點擊Forward進入Identity設置。在Required Information欄中的Full Name中填寫你要建立的賬號在Evolution中顯示的名字,在Email Address中輸入你的Email地址。假設老櫻旦我的Email地址是[email protected]


點擊Forward進入Receiving Email設置。在Server Type中選擇POP。如果你不知道選擇哪個選項,你需要到Email提供商的網站查找或者直接咨詢你頌叢的侍擾Email提供商。在Server欄中輸入 pop3.163.com。Use Secure Connection選項這里選擇Never,你也可以選擇Whenever Possible,具體看你的Email提供商所提供的方式。點擊Check for Supported Types查找Email伺服器支持的Authentication Type,這里我選擇Password。然後你可以看是否需要選上Remeber password選項。


點擊Forward進入Receiving Options設置。如果你不知道裡面的選項是什麼意思,你就一個也不用選擇。
點擊Forward進入Sending Email設置。Server Type選擇SMTP。在Server欄中輸入smtp.163.com,並且選上Server requires authentication,Use Secure Connection選擇同上。在Authentication的Type欄中選擇Login。

你已經完成163.com的Email設置了。一直點擊Forward直到完成。
3. 從伺服器收取郵件
點擊工具欄的收取郵件的圖標或者從File菜單中選擇Send/Receive收取郵件。
4. 發送郵件
比你所能想像的還要簡單!

閱讀全文

與linuxsmtp擴展安裝相關的資料

熱點內容
ps下載完不是壓縮文件 瀏覽:362
電腦中的個人文件包括什麼 瀏覽:572
網路連接一般什麼密碼 瀏覽:199
java定時器quartz實例 瀏覽:259
稻殼excel文件太大怎麼弄 瀏覽:901
文件里的視頻如何保存到相冊 瀏覽:428
手機百度雲文件電腦 瀏覽:957
編程怎麼做到時鍾精準 瀏覽:912
錘子用過的壁紙在哪個文件里 瀏覽:468
qq網站安全性未知訪問不了怎麼辦 瀏覽:270
燕秀怎麼修改編程人名字 瀏覽:789
2012年天之眼導航升級 瀏覽:595
如何安裝視頻文件 瀏覽:315
紅米2A升級miui9 瀏覽:927
如何在表格中加入一行資料庫 瀏覽:421
dnf遠古二能升級85嗎 瀏覽:251
extjsbbar屬性 瀏覽:355
nodejs網頁 瀏覽:517
同城簡歷在哪個文件夾 瀏覽:661
mac上的文件總是出現未知錯誤代碼 瀏覽:374

友情鏈接