關于sendmail的FAQ.
發表于:2007-05-25來源:作者:點擊數:
標簽:
由于論壇問的sendmail問題有很多重復的,所以寫了這個帖子。希望大家查找方便。 由于本人技術、精力有限,對sendmail也沒有作過太深入的研究。只是以前經常使用,對配置熟一些,希望能在這里起到拋磚引玉的作用。 其實free的版本的sendmail沒什么太多的工具
由于
論壇問的sendmail問題有很多重復的,所以寫了這個帖子。希望大家查找方便。
由于本人技術、精力有限,對sendmail也沒有作過太深入的研究。只是以前經常使用,對配置熟一些,希望能在這里起到拋磚引玉的作用。
其實free的版本的sendmail沒什么太多的工具,所有的工具都要自己
開發,不好討論了。這里我們我們主要討論兩方面MTA和webmail,webmail方面我認為最適合的是openwebmail了。
其他方面東西,希望斑竹老大能給給予整理。
首先,建議要配置sendmail的朋友,最好看看著幾篇文章。
sendmail的配置文章,帶sasl認證的,心余寫的:
http://www.chinaunix.net/forum/viewtopic.php?t=47662
我以前寫的,關于sendmail+openwebmail的文章,其中openwebmail。1。65可能有點老了,但可以參考:
http://www.chinaunix.net/bbsjh/1/3395.html
關于openwebmail對最新版本的文章,這個是必須要看的?。?
http://openwebmail.org/openwebmail/doc/readme.txt
以上推薦的文章,我都親自配置過多次,均獲得成功。
下面FAQ的具體內容,我會不停的整理和更新,也希望大家共同維護。
第一部分:MTA配置:
前言
sendmail作為一個優秀的MTA,一直是UNXI系統中缺省的郵件
服務器。在
UNIX中,應用程序是和配置文件分開的放置的。就sendmail而言,sendmail的程序是一般放在/usr/sbin目錄下(不同的版本UNIX版本路徑可能有所不同),而配置文件是放在/etc或者/etc/mail中(不同的版本UNIX版本路徑可能有所不同),在sendmail v8.9以后,sendmail增加了一個宏編譯文件/sendmail.mc,通過在宏編譯文件中加一些選項,再經過編譯就可以得到一個sendmail.cf的配置文件,極大的方便了用戶。
1、怎樣編譯生成sendmail.cf文件?
a:redhat7.0的版本,
# m4 /usr/share/sendmail-cf/cf/redhat.mc > /etc/sendmail.cf
redhat7.2以上:
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
如果提示沒有發現命令,是沒有安裝sendmail-cf-*文件包。
redhat光盤中有rpm包,可以直接安裝。其他版本,download相應的軟件包安裝。
2、sendmail如何做能支持POP3?
a:sendmail本身不支持pop3服務,你要安裝相應的ipop3服務軟件。
這里以redhat8為例,找到安裝光盤中的imap*.rpm文件。
# rpm -ivh imap*.rpm
# vi /etc/xinetd.d/ipop3
更改 disable=yes 為 no
# /etc/rc.d/init.d/xinetd restart
3、如何饒過firewall的屏蔽。
vi /etc/mail/sendmail.mc
Feature ('accept_unresolvable_domains')
添上這一句,就可以傳遞那些域名不能從你的郵件服務器所在主機解析的郵件。當郵件在防火墻里面時,必須使用這個特性。否則有些郵件不可到達。使用這個特性后,sendmail就不會直接去試圖解析那些郵件地址,而是把郵件轉發到上一級郵件服務器,讓其去轉發,就可以饒過防火墻屏蔽。
4、sendmail使用的用戶賬號是系統的 ,這些用戶的login shell定義的是no shell(email only),如何讓用戶自己修改密碼?是不是要改用其他的操作系統和軟件才能實現???
多謝指點?。?!
a:不用啊,可以自己編寫一個shell,給mail user用。
例如:
1、更改密碼
2、刪除信件。
3、退出。
具體你要自己編寫。
也可以編寫一個web方式的,來更改密碼。
實在不行,在裝一個webmail,通過她來更改密碼。例如:openwebmail。
當然,可以從中分離出更改密碼的頁面。
5、本機上可以telnet ip address 25和110端口,但是客戶端不行,提示連接失敗,為什么?
xingplayer:
a:看看防火墻是不是打開了,關閉掉或者設置打開25或者110端口。
或者是這個原因, sendmail.cf文件中有一個選項:
O DaemonPortOptions
edit /etc/sendmail.cf
找到:
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA
添加:
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=你的IP, Name=MTA
保存!
這樣就能夠解決問題
6、如何建立一個mail 的dns記錄:
mail IN A 192.168.2.11 --你的mail主機地址。
@ IN MX 10 mail ---建立你的mx記錄,郵件等級為10。
7、請教高手,我想知道在
Linux下怎樣查看和刪除當前郵件隊列?
a:查看:
#mailq |more ---看到的是超過正常時間限制的信件
#ls /var/spool/mqueue --隊列中所有的信件。
刪除:
# rm -rf /var/spool/mqueue/*
8、公司內部使用的是Exchange郵件系統?,F在希望使用一臺
linux server來作對外的mail relay.以減輕E2k的負擔。應該怎樣作?
我現在用sendmail作對外的relay是沒有問題了。但是對于收信,我不清楚怎樣配置。
我不明白,一臺server怎樣同時制定不同的規則,因為外發/內送的規則是截然不同的.因為:
OUtbound: 來源 指定主機(指定@domain) 目標: all host,all domain to internet (這個我東拼西湊,總算基本可以實現,就使用access文件)
Inbound: 來源 All host,all domain internet 目標:@intra.com.cn
這樣兩個完全衝突的規則,如何在一個service 的配置中實現?
我實在是很困惑,還請各位指教指教.
a:其實我個人覺得,你用了liunx下的sendmail,完全可以替代了exchange,我的一臺PIII500,256sdrom,18G的compaq pcserver,我總共10000左右用戶,是以前isp做的mail server,100多個公司,也就是100多個虛擬域名。使用率很高,但是當時不提供webmail服務。工作
性能良好,從沒出現超負荷情況。
如果你非得要做的話,有一個解決方法。
首先,sendmail 要裝smtp服務,不要裝pop3服務了。 exchange都要裝smtp and pop3服務。
在dns server中設置:
smtp IN A sendmailhost ip address
pop3 IN A exchangehost ip address
@ IN MX 10 pop3
理論分析:
首先是發信,你的用戶給外面的發信,用的smtp服務器是sendmail的主機地址,實現了你的作對外的mail relay。外面的給你的郵件和你公司員工互相發的郵件,在smtp server之間,查找的是mx紀錄,而不是A紀錄,所以,就發到了pop3主機上,也就是你的exchange主機。還有的是通過你的用戶有別名的,到了你的exchange主機上,還要relay,所以,exchange的主機也要啟動smtp,但是,它只是很少的轉發,沒有太大的流量。這樣,就應該實現了你的要求。
這樣的結果就是smtp and pop3服務分開了。sendmail負責mail relay,exchange 負責pop3 和別名轉發。
你要是還要exchange負責發給不的信件,在server端設置,就麻煩了。你可以用foxmail,在客戶端設置。但是要是公司人多,也非常麻煩。
還不如我說的,實現smtp and pop3分開,無傷大局。
不知道可不可以實現你的要求。:)
9、設置了access,為什么不生效?
a:首先,你要正確配置/etc/mail/access。還要看你的/sendmail.cf文件中的對access的定義。
access-db
Feature(`access_db','hash /etc/mailaccess')
Feature(`access_db','dbm /etc/mailaccess')
第一種,是要生成哈希表形式的庫文件
要運行:
# makemap hash /etc/mail/access.db < /etc/mail/access
第二種,是傳統的
數據庫格式。
運行:
# makemap dbm /etc/mail/access.db < /etc/mail/access
10、我在我們局域網配置了個mail服務器,出現這樣一個問題。請大家幫忙:
我輸入smtp,pop3輸入我機器的ip地址沒有問題,但輸入我的DNS主機器名,就
不能進行收發mail.
我問過別人,他說是DSN的配置問題,我通過x
windows配置的,感覺很簡單,那里有錯呢?
牽扯到DSN的就是:
主機器名:test.com
主DNS:我機器的ip地址
域名:test.com
不清楚那里錯了,請大家這點。多謝!
a:首先,保證你的dns server設置正確。
其次,你還要清楚,你在局域網中
測試。你的域名test.com不是合法的。
正常的dns server是解析不到的。
你要用主機名和域名測試,要保證客戶機使用的dns server要用給你的mail server作解析的dns server保持一致。這樣,按照dns server的工作原理,才能給你的可戶機作正確的解析。
有的時候還要reboot客戶主機,或直接清除你的cache,才可以的。
11、我想給郵件服務器上的所有mail用戶發新,或給其中指定的很多用戶發信,怎么解決???
a:建立別名文件,也就是做群發啊。
看你的sendmail.cf或者sendmail.mc文件中,應該有定義。
具體操作:
1、編輯系統別名文件,添加一個虛擬用戶alluser。
#vi /etc/aliases
alluser::include:/etc/mail/alluser
2、重新生效一下。
#newaliases
3、編寫用戶文件,格式是每一行一個用戶名。用戶名是你公司所有員工的用戶名或者你想要轉發的用戶。
vi /etc/mail/alluser
peng
gadfly
tiantian
。。。。
。。。
到著,就應該ok了,應該不用重起sendmail進程。
12、我想對我公司的內部的
LINUX9。01郵件服務器(sendmail )進行遠程控控制 (包括加用戶,系統開關機等)為什么在外面不能用root 用戶登陸系統啊。 是不是把普通用戶的權限改成系統管理員的權限就可以啊。從那個地方進行修改啊。 目地是對LINUX郵件服務器進行遠程控制。
a:telnet服務默認是不支持root直接登陸的,ssh可以的。但是不提倡,這種習慣不好。。。
13、先用普通的用戶登進去, 再用SU然后輸入ROOT的密碼可以進入到:
可以實現關機。重新啟動功能,但還是不能加、刪除用戶。怎樣才能實現添加、刪除用戶的功能呢???
a:應該是:
$su -
只輸入su,是轉換了root的uid,但是沒有加載環境變量。
用su -,就加載了環境變量。
你用su,添加用戶就要寫全命令路徑!
第二部分,webmail:
netloafer 回復于:2003-06-20 16:40:39
|
不錯,弓雖人呀!!
呵呵
sendmail、qmail、postfix的FAQ都建立起業,這樣,一般的問題都基本上可以解決了。
還是請新手多多看一下本版的FAQ
請版主幫忙置頂??!
|
peng 回復于:2003-06-20 16:45:19
|
呵呵,小葉子在啊,今天怎么得閑了?
先寫這么多了,想不起來了,有時間我會慢慢補充的。
也請高手們指點錯誤和多多發言???
|
gadfly 回復于:2003-06-20 17:33:51
|
哈哈,二位百忙之中抽空出來,真是不錯呀。
好了,現在三大MTA的FAQ全了。
|
ilovewalk 回復于:2003-06-22 22:19:29
|
我想提個問,如果用戶不記得他的密碼啦,應該怎么辦呢???
|
peng 回復于:2003-06-23 09:19:09
|
[quote:5275f2cecc="ilovewalk"]我想提個問,如果用戶不記得他的密碼啦,應該怎么辦呢???[/quote:5275f2cecc]
管理員可以更改??!
初始化密碼就可以了。
|
frame 回復于:2003-06-25 17:13:59
|
問一個問題啊
按照說明安裝好了以后,到OUTLOOK里可以發郵件了,可以發到HOTMAIL里,但HOTMAIL回復的信這里卻收不到,也沒有出錯信息
相互發送(sale@domainname.com 到other@domailname.com)可以收發,外面發來的信收不到
是不是MX的問題??
|
peng 回復于:2003-06-25 17:20:11
|
有可能??纯次疑线厡懙年P于dns的問題,和你的不一樣嗎?
還有,你的域名是合法的嗎?機器在公網上嗎?
|
frame 回復于:2003-06-26 09:06:41
|
域名是合法的,機器在公網上的
|
peng 回復于:2003-06-26 10:33:06
|
貼出你的dns配置看看。。。
|
xingplayer 回復于:2003-06-30 23:37:09
|
關于第5個問題的回答
原文如下:
“5、本機上可以telnet ip address 25和110端口,但是客戶端不行,提示連接失敗,為什么?
a:看看防火墻是不是打開了,關閉掉或者設置打開25或者110端口。 ”
其實還有其他原因, sendmail.cf文件中有一個選項:
O DaemonPortOptions
edit /etc/sendmail.cf
找到:
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA
添加:
# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=你的IP, Name=MTA
保存!
這樣就能夠解決問題
|
dwq123 回復于:2003-08-11 15:48:23
|
老大們,我在本機上#telnet localhost 25 時不成功啊,提示如下:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 dns.eef.com ESMTP Sendmail 8.11.6/8.11.6; Mon, 11 Aug 2003 15:21:31 +0800
后面就什么都沒有了,為什么沒有出現250-AUTH LOGIN PLAIN的行。
|
peng 回復于:2003-08-11 15:56:35
|
[quote:c7a05fc4b7="dwq123"]老大們,我在本機上#telnet localhost 25 時不成功啊,提示如下:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 dns.eef.com ESMTP Sendmail 8.11.6/8.11.6; Mon, 11 Aug 2003 ..........[/quote:c7a05fc4b7]
呵呵~哥們!
想看下面的,接著輸入:
EHLO localhost ---再回車。。。。
|
dwq123 回復于:2003-08-11 16:12:50
|
結果顯示下面的信息:
250-dns.eef.com Hello dns.eef.com [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-ETRN
250-XUSR
250 HELP
還是沒有250-AUTH LOGIN PLAIN的信息???
|
peng 回復于:2003-08-11 16:15:57
|
停止sendmail,重新啟動在看看。
要是沒有,看心余的帖子:
有沒有正確編譯sasl,檢查sendmail.mc文件。
|
dwq123 回復于:2003-08-11 17:07:55
|
謝謝阿peng,我現在配好了,但是我用outlook發郵件時提示:SMTP reply 553 5.5.4
|
peng 回復于:2003-08-11 17:36:55
|
暈~你怎么這么粗心??!
打開outlook--工具--帳浩-郵件-屬性-服務器--我的服務器需要身份驗證--打上對勾!
干了這么多,不就是為了這個對勾能生效嗎?
|
dwq123 回復于:2003-08-11 18:10:45
|
謝謝阿peng,我配好了。
但是現在又有另一個問題:用outlook發信時提示:SMTP Server reply 553 5.5.4 .......
請問是什么原因?
|
peng 回復于:2003-08-11 18:14:04
|
照我上邊說的做。。。。。。。。
|
Suche 回復于:2003-08-12 18:29:33
|
TO peng老大,我是一個linux新手,最近在給實驗室搞內部服務器,希望建立一個在局域網內部使用的email的服務器,使用sendmail,以實現局域網內部成員能用outlook等程序進行內部email交流,服務器裝的是rh9,但是一直搞不定,有人推薦我參考心余的那篇帖子,我照著他寫的做了,已經檢測到SASL被編譯到sendmail中,但是接下來檢測不到25端口,顯示
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
這是什么原因啊,是不是這個端口被其他配置禁掉了啊,服務器的系統開始不是我搞的,我應該從那方面著手呢,您能否在百忙之余指點我一下,謝謝
|
lcqxmu 回復于:2003-08-13 10:23:04
|
sendmail 要裝smtp服務 是如何實現呢
|
Suche 回復于:2003-08-13 14:57:14
|
那個telnet的問題已經解決了,查了半天原來是在將sendmail.mc編譯成sendmail.cf時出了錯,在sendmail.cf里莫名其妙的出現了幾個亂碼,去掉之后就好了,現在已經按照心余寫的那篇文章通過了測試。但是用outlook發信不能成功,是不是dns也要進行相關設置啊,
|
dwq123 回復于:2003-08-13 16:53:47
|
to:peng老大:
我的sendmail配置好了,用outlook可以收發郵件,但是用foxmail只能收不能發,提示:SMTP server reply:553 5.5.4 .....domain name required for sender adress ,而且我已勾選了SMTP認證,請問是什么原因?
|
原文轉自:http://www.kjueaiud.com
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|