1.postfix的安裝:
卸載sendmail
# yum remove sendmail
卸載postfix
# yum remove postfix
重新安裝postfix
# yum install postfix
因為卸載postfix的時候系統(tǒng)定時服務也被卸載核心服務也同步安裝
# yum install crontabs
提供smtp的虛擬賬戶和密碼服務
# yum install cyrus-sasl*
當前mta查看
# alternatives --display mta
如果是 當前“最佳”版本是 /usr/sbin/sendmail.postfix。 就不需要修改分尸,
如果不是,設置mta
# /usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix
再次查看mta
# alternatives --display mta
設置postfix開機啟動
# chkconfig postfix on
2.postfix配置并啟用smtp
編輯postfix配置文件
vim /etc/postfix/main.cf
找到如下配置項酌情修改:
postfix主機名
myhostname = mail.caefcs.com
域名
mydomain = caefcs.com
本機postfix的郵箱域名后最 此項默認值使用myhostname
此處使用了前項mydomain 也就是說本機postfix郵箱后綴為:@caefcs.com
myorigin = $mydomain
指定postfix系統(tǒng)監(jiān)聽的網絡接口 此處必須是localhost或127.0.0.1或內網ip
若注釋或填入公網ip 服務器的25端口將對公網開放
默認值為all 即監(jiān)聽所有網絡接口
此項指定localhost后 本機postfix就只能發(fā)郵件不能接收郵件
inet_interfaces = all
網絡協議 ipv6、ipv4或者all
inet_protocols = all
指定postfix接收郵件時收件人的域名,換句話說,也就是你的postfix系統(tǒng)要接收什么樣的郵件评姨。
此項配置中myhostname為后綴的郵箱的郵件,逗號分割支持指多項
此項默認值使用myhostname
mydestination = $myhostname,localhost.$mydomain,localhost,$mydomain
此項制定接收郵件的規(guī)則 可以是hash文件 此項對本次配置無意義 可以直接注釋
local_recipient_maps =
指定你所在的網絡的網絡地址
最好加上你要在第三方上使用的服務器,不加的話可能無法使用在第三方上面
請依據實際情況修改
mynetworks =127.0.0.0/8, ****
指定MUA通過smtp連接postfix時返回的header頭信息
原始配置附帶有postfix版本號 去掉即可萤晴,此項酌情處理
smtpd_banner = $myhostname ESMTP $mail_name
下面的部分直接粘在文件結尾:
指定postfix兼容MUA使用不規(guī)則的smtp協議--主要針對老版本的outlook 此項對于本次配置無意義
broken_sasl_auth_clients = yes
指定可以向postfix發(fā)起SMTP連接的客戶端的主機名或ip地址
此處permit_sasl_authenticated意思是允許通過sasl認證(也就是smtp鏈接時通過了賬號吐句、密碼效驗的用戶)的所有用戶
smtpd_client_restrictions = permit_sasl_authenticated
發(fā)件人在執(zhí)行RCPT TO命令時提供的地址進行限制規(guī)則 此處照搬復制即可
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
指定postfix使用sasl驗證 通俗的將就是啟用smtp并要求進行賬號、密碼效驗
smtpd_sasl_auth_enable = yes
指定SMTP認證的本地域名 本次配置可以使用 smtpd_sasl_local_domain = '' 或干脆注釋掉 默認為空
smtpd_sasl_local_domain = $mydomain
取消smtp的匿名登錄 此項默認值為noanonymous smtp若能匿名登錄危害非常大 此項請務必指定為noanonymous
smtpd_sasl_security_options = noanonymous
指定通過postfix發(fā)送郵件的體積大小 此處表示5M
message_size_limit = 5242880
3.修改主機名稱
查看主機名稱
# hostname
修改主機名稱
# vim /etc/sysconfig/network
配置為
myhostname=mail.caefcs.com
查看防火墻狀態(tài)
service iptables status
關閉防火墻
chkconfig iptables off
重啟
# shutdown -r now
4.sasldb2建立smtp用戶和密碼
# vim /etc/sasl2/smtpd.conf
編輯如下:
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: plain login CRAM-MD5 DIGEST-MD5
5.創(chuàng)建smtp賬號
# saslpasswd2 -c -u `postconf -h mydomain` charm
回車會要求輸入密碼店读,連續(xù)兩次
表示創(chuàng)建charm@$mydomain的郵箱賬號(也是smtp的賬號)和密碼
本例就是創(chuàng)建charm@caefcs.com賬號和密碼
此處注意的是smtp登錄用的賬號并不是單純的用戶名嗦枢,而是整個郵箱地址字符串
假設此處設置的smtp賬號charm@caefcs.com密碼為charm,下方測試時要用到
查看sasldb2的用戶和密碼
# sasldblistusers2
此命令進用戶查看sasldb的用戶情況
此命令回車后會輸出諸如這樣的內容:charm@caefcs.com: userPassword
# service postfix restart
每次添加smtp用戶完畢之后需重啟postfix或reload
6.測試postfix配置文件并啟動postfix
# service postfix check
沒有問題的話會返回著色[確定]字樣
更改sasldb2數據的權限屯断,讓postfix可以讀取
# chmod 755 /etc/sasldb2
6.測試smtp
安裝telnet
# yum install telnet
開始測試
# telnet localhost 25
返回:
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mail.caefcs.com ESMTP Postfix
EHLO caefcs.com
AUTH LOGIN
返回:334 VXNlcm5hbWU6
要求進行smtp賬號密碼效驗
Y2hhcm1AY2FlZmNzLmNvbQ==
postfix用戶名的base64編碼
返回:334 UGFzc3dvcmQ6
Y2hhcm0=
密碼的base64編碼
返回:235 2.7.0 Authentication successful
helo caefcs.com
返回:250 mail.caefcs.com
mail from:charmaim@caefcs.com
返回:250 2.1.0 Ok
rcpt to:117056872@qq.com
返回:250 2.1.5 Ok
data
返回:354 End data with <CR><LF>.<CR><LF>
1jaflksofsajlkfasdj
.
返回:250 2.0.0 Ok: queued as 81D4F5807B0
查看郵箱收到郵件文虏。