| 導購 | 订阅 | 在线投稿
分享
 
 
 

十分鍾安裝帶認證的sendmail

來源:互聯網網民  2008-05-31 00:04:32  評論

前言

有朋友找到我,讓我幫忙配置一台郵件服務器。我的這位朋友也是適用Linux有一段時間的了,並且他還在Linux上開發了幾個軟件。他愁眉苦臉的跟我說,以前沒配過sendmail,在網上查找了一些資料,每每看到文章開頭寫道:「配置sendmail是一項龐大而複雜的系統工程....」還沒讀完就暈倒過去。蘇醒後,就來找我了,問我能不能有什麽速成之類的辦法,因爲他根本不想研究sendmail是怎麽工作的,就想搭建起來能完成工作就可以了。

我決定幫助他解決他所遇到的問題,于是在下班後翻出以前配置郵件服務器的筆記,花了10分鍾左右就在他的新安裝一台服務器上運行起來了一個郵件服務器(甚至比配置IIS的郵件服務器還快)。在回家的路上,我邊開車邊想:要是配置所有服務器都能按照一個簡單的步驟完成(就想開車一樣),那使用 Linux的人不就更多了嗎?這裏的核心就是一個比較通用的配置文件,並且他還時帶SMTP認證的,既然我已經有了這個成果,爲什麽不和更多的初學者分享呢?也許這就是開放源碼社區的精神吧。讓我們開始:

按照這個步驟,只要十分鍾就可以配置出一個帶有SMTP認證的郵件服務器。當然了,郵件服務器需要配置DNS的MX記錄和指向等這裏就不討論了。另外主機名和網絡配置也要制定好。還有,基本的Linux命令你要知道一些。

[准備工作]

下面這兩項工作是必須要准備好的:

1、安裝RedHat7.3,缺省安裝即可,但是要保證選裝了sendmail

2、下載qpopper4.0.3.tar.gz,這個是pop3服務器的源碼。(在網上搜索一下,很多的)

[開始計時]

1、複制qpopper4.0.3.tar.gz到/usr/local/src

2、tar zxvf qpopper4.0.3.tar.gz 釋放壓縮文件

3、cd qpopper4.0.3 進入子目錄

4、./configure --prefix=/usr --exec-prefix=/usr --enable-standalone

5、make

6、make install 這一步可能會出錯,主要是man文件的目錄沒有事先建立。執行:mkdir /usr/man;mkdir /usr/man/man8即可(或根據提示進行,希望你能夠看得懂出錯的地方)。

7、編輯:/etc/mail/sendmail.mc把下面的內容完全覆蓋進去:注意下面的第13行中XXX.com改成你的域名:

divert(-1)

dnl This is the sendmail macro config file. If you make changes to this file,

dnl you need the sendmail-cf rpm installed and then have to generate a

dnl new /etc/sendmail.cf by running the following command:

dnl

dnl m4 /etc/mail/sendmail.mc /etc/sendmail.cf

dnl

include(`/usr/share/sendmail-cf/m4/cf.m4')

VERSIONID(`linux setup for Red Hat Linux')dnl

OSTYPE(`linux')

dnl Uncomment and edit the following line if your mail needs to be sent out

dnl through an external mail server:

dnl define(`SMART_HOST',`XXX.com')

define(`confDEF_USER_ID',``8:12'')dnl

undefine(`UUCP_RELAY')dnl

undefine(`BITNET_RELAY')dnl

define(`confAUTO_REBUILD')dnl

define(`confTO_CONNECT', `1m')dnl

define(`confTRY_NULL_MX_LIST',true)dnl

define(`confDONT_PROBE_INTERFACES',true)dnl

define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl

define(`ALIAS_FILE', `/etc/aliases')dnl

dnl define(`STATUS_FILE', `/etc/mail/statistics')dnl

define(`UUCP_MAILER_MAX', `2000000')dnl

define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl

define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl

define(`confAUTH_OPTIONS', `A')dnl

TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

DAEMON_OPTIONS(`Port=25,Name=MTA')dnl

DAEMON_OPTIONS(`Port=587,Name=MSA,M=Ea')dnl

dnl define(`confTO_QUEUEWARN', `4h')dnl

dnl define(`confTO_QUEUERETURN', `5d')dnl

dnl define(`confQUEUE_LA', `12')dnl

dnl define(`confREFUSE_LA', `18')dnl

dnl FEATURE(delay_checks)dnl

FEATURE(`no_default_msa',`dnl')dnl

FEATURE(`smrsh',`/usr/sbin/smrsh')dnl

FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl

FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl

FEATURE(redirect)dnl

FEATURE(always_add_domain)dnl

FEATURE(use_cw_file)dnl

FEATURE(use_ct_file)dnl

dnl The '-t' option will retry delivery if e.g. the user runs over his quota.

FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl

FEATURE(`access_db',`hash -o /etc/mail/access.db')dnl

FEATURE(`blacklist_recipients')dnl

EXPOSED_USER(`root')dnl

dnl This changes sendmail to only listen on the loopback device 127.0.0.1

dnl and not on any other network devices. Comment this out if you want

dnl to accept email over the network.

dnl DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')

dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires

dnl a kernel patch

dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')

dnl We strongly recommend to comment this one out if you want to protect

dnl yourself from spam. However, the laptop and users on computers that do

dnl not have 24x7 DNS do need this.

dnl FEATURE(`accept_unresolvable_domains')dnl

dnl FEATURE(`relay_based_on_MX')dnl

dnl FEATURE(`relay_local_from')dnl

MAILER(smtp)dnl

MAILER(procmail)dnl

Cwlocalhost.localdomain

8、在/etc/mail中執行m4 sendmail.mc /etc/sendmail.cf

9、編輯/etc/mail/local-host-names增加你的域名XXX.com進去。

10、啓動:/etc/init.d/sendmail restart

11、啓動:/usr/sbin/popper xxx.xxx.xxx.xxx:110 (其中xxx.xxx.xxx.xxx是你的IP地址)

12、useradd -g mail ABC (增加一個用戶名)

13、配置你的客戶端,別忘了配置SMTP認證,試驗一下用戶ABC能不能使用了?

恭喜你!你已經有了一個帶由SMTP認證的郵件服務器了。不過要完成更複雜的配置,就要仔細研究一下sendmail的mc命令了。你還可以考慮一下,如何讓用戶自行修改密碼呢?答案就是用/usr/sbin/passwd命令作爲用戶的shell,這樣,就可以讓用戶登陸上來修改自己的密碼了。當然,現在有現成的圖形界面工具:chpasswd軟件是專門修改系統用戶密碼用的,以後我們再介紹了。

 
特别声明:以上内容(如有图片或视频亦包括在内)为网络用户发布,本站仅提供信息存储服务。
 
  前言   有朋友找到我,讓我幫忙配置一台郵件服務器。我的這位朋友也是適用Linux有一段時間的了,並且他還在Linux上開發了幾個軟件。他愁眉苦臉的跟我說,以前沒配過sendmail,在網上查找了一些資料,每每看到文章開頭寫道:「配置sendmail是一項龐大而複雜的系統工程....」還沒讀完就暈倒過去。蘇醒後,就來找我了,問我能不能有什麽速成之類的辦法,因爲他根本不想研究sendmail是怎麽工作的,就想搭建起來能完成工作就可以了。   我決定幫助他解決他所遇到的問題,于是在下班後翻出以前配置郵件服務器的筆記,花了10分鍾左右就在他的新安裝一台服務器上運行起來了一個郵件服務器(甚至比配置IIS的郵件服務器還快)。在回家的路上,我邊開車邊想:要是配置所有服務器都能按照一個簡單的步驟完成(就想開車一樣),那使用 Linux的人不就更多了嗎?這裏的核心就是一個比較通用的配置文件,並且他還時帶SMTP認證的,既然我已經有了這個成果,爲什麽不和更多的初學者分享呢?也許這就是開放源碼社區的精神吧。讓我們開始:   按照這個步驟,只要十分鍾就可以配置出一個帶有SMTP認證的郵件服務器。當然了,郵件服務器需要配置DNS的MX記錄和指向等這裏就不討論了。另外主機名和網絡配置也要制定好。還有,基本的Linux命令你要知道一些。 [准備工作] 下面這兩項工作是必須要准備好的: 1、安裝RedHat7.3,缺省安裝即可,但是要保證選裝了sendmail 2、下載qpopper4.0.3.tar.gz,這個是pop3服務器的源碼。(在網上搜索一下,很多的) [開始計時] 1、複制qpopper4.0.3.tar.gz到/usr/local/src 2、tar zxvf qpopper4.0.3.tar.gz 釋放壓縮文件 3、cd qpopper4.0.3 進入子目錄 4、./configure --prefix=/usr --exec-prefix=/usr --enable-standalone 5、make 6、make install 這一步可能會出錯,主要是man文件的目錄沒有事先建立。執行:mkdir /usr/man;mkdir /usr/man/man8即可(或根據提示進行,希望你能夠看得懂出錯的地方)。 7、編輯:/etc/mail/sendmail.mc把下面的內容完全覆蓋進去:注意下面的第13行中XXX.com改成你的域名: divert(-1) dnl This is the sendmail macro config file. If you make changes to this file, dnl you need the sendmail-cf rpm installed and then have to generate a dnl new /etc/sendmail.cf by running the following command: dnl dnl m4 /etc/mail/sendmail.mc /etc/sendmail.cf dnl include(`/usr/share/sendmail-cf/m4/cf.m4') VERSIONID(`linux setup for Red Hat Linux')dnl OSTYPE(`linux') dnl Uncomment and edit the following line if your mail needs to be sent out dnl through an external mail server: dnl define(`SMART_HOST',`XXX.com') define(`confDEF_USER_ID',``8:12'')dnl undefine(`UUCP_RELAY')dnl undefine(`BITNET_RELAY')dnl define(`confAUTO_REBUILD')dnl define(`confTO_CONNECT', `1m')dnl define(`confTRY_NULL_MX_LIST',true)dnl define(`confDONT_PROBE_INTERFACES',true)dnl define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl define(`ALIAS_FILE', `/etc/aliases')dnl dnl define(`STATUS_FILE', `/etc/mail/statistics')dnl define(`UUCP_MAILER_MAX', `2000000')dnl define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl define(`confAUTH_OPTIONS', `A')dnl TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl DAEMON_OPTIONS(`Port=25,Name=MTA')dnl DAEMON_OPTIONS(`Port=587,Name=MSA,M=Ea')dnl dnl define(`confTO_QUEUEWARN', `4h')dnl dnl define(`confTO_QUEUERETURN', `5d')dnl dnl define(`confQUEUE_LA', `12')dnl dnl define(`confREFUSE_LA', `18')dnl dnl FEATURE(delay_checks)dnl FEATURE(`no_default_msa',`dnl')dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl FEATURE(redirect)dnl FEATURE(always_add_domain)dnl FEATURE(use_cw_file)dnl FEATURE(use_ct_file)dnl dnl The '-t' option will retry delivery if e.g. the user runs over his quota. FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl FEATURE(`access_db',`hash -o /etc/mail/access.db')dnl FEATURE(`blacklist_recipients')dnl EXPOSED_USER(`root')dnl dnl This changes sendmail to only listen on the loopback device 127.0.0.1 dnl and not on any other network devices. Comment this out if you want dnl to accept email over the network. dnl DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA') dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires dnl a kernel patch dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6') dnl We strongly recommend to comment this one out if you want to protect dnl yourself from spam. However, the laptop and users on computers that do dnl not have 24x7 DNS do need this. dnl FEATURE(`accept_unresolvable_domains')dnl dnl FEATURE(`relay_based_on_MX')dnl dnl FEATURE(`relay_local_from')dnl MAILER(smtp)dnl MAILER(procmail)dnl Cwlocalhost.localdomain 8、在/etc/mail中執行m4 sendmail.mc /etc/sendmail.cf 9、編輯/etc/mail/local-host-names增加你的域名XXX.com進去。 10、啓動:/etc/init.d/sendmail restart 11、啓動:/usr/sbin/popper xxx.xxx.xxx.xxx:110 (其中xxx.xxx.xxx.xxx是你的IP地址) 12、useradd -g mail ABC (增加一個用戶名) 13、配置你的客戶端,別忘了配置SMTP認證,試驗一下用戶ABC能不能使用了?   恭喜你!你已經有了一個帶由SMTP認證的郵件服務器了。不過要完成更複雜的配置,就要仔細研究一下sendmail的mc命令了。你還可以考慮一下,如何讓用戶自行修改密碼呢?答案就是用/usr/sbin/passwd命令作爲用戶的shell,這樣,就可以讓用戶登陸上來修改自己的密碼了。當然,現在有現成的圖形界面工具:chpasswd軟件是專門修改系統用戶密碼用的,以後我們再介紹了。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有