新聞中心
在使用qq等郵件服務(wù)器廠商提供的郵件服務(wù)后,發(fā)現(xiàn)他們的郵件發(fā)送數(shù)量是有限制的,隨著公司的業(yè)務(wù)的需求下,我們需要搭建一個(gè)郵件服務(wù)器,郵件服務(wù)器可以幫助我們在一些提醒方面和消息推送方面起到幫助,下面為大家詳細(xì)講解一下Linux中Postfix郵件發(fā)送配置。

為澄江等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及澄江網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、澄江網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
部署DNS服務(wù)器
postfix根據(jù)域名和地址做一個(gè)MX記錄,A記錄,PTR記錄(一般在互聯(lián)網(wǎng)上郵件服務(wù)器都要反解,沒有PTR記錄會認(rèn)為是垃圾郵件)
$ service iptables stop
$ chkconfig iptables on
$ setenforce 0
$ hostname mail.ywnds.com
$ echo "127.0.0.1 mail.ywnds.com" >> /etc/hosts
$ yum install bind bind-utils bind-libs
配置DNS
$ cat /etc/named.conf
options {
listen-on port 53 { any; };
directory "/var/named";
allow-query { any; };
recursion yes;
{
zone "ywnds.com" IN {
type master;
file "ywnds.com";
};
#include "/etc/named.root.key";
PS:添加和修改以上內(nèi)容即可。
$ cat /var/named/ywnds.com
$TTL 1D
@ IN SOA ns.ywnds.com. root.ywnds.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns
ns IN A 192.168.60.10
@ IN MX 10 smtp
smtp IN A 192.168.60.10
pop3 IN A 192.168.60.10
mail IN A 192.168.60.10
$ service named restart
$ chkeconfig named on
postfix主配置文件添加以下內(nèi)容
postfix主配置文件進(jìn)行模塊化了,其中:
/etc/postfix/main.cf:這個(gè)文件保存全局配置信息,所有進(jìn)程都會用到,除非這些配置在 master.cf 文件中被重新設(shè)置了。
/etc/postfix/master.cf:這個(gè)文件保存了額外的進(jìn)程運(yùn)行時(shí)環(huán)境參數(shù),在 main.cf 文件中定義的配置可能會被本文件的配置覆蓋掉。
在配置文件中所有的參數(shù)都必須頂格寫不然就會當(dāng)做是上一行參數(shù)的續(xù)寫。另外postfix大部分配置文件都進(jìn)行默認(rèn)化處理了,可以使用postconf -d進(jìn)行查看。
$cat /etc/postfix/main.cf
inet_protocols = all
inet_interfaces = 192.168.60.10,127.0.0.1
myhostname = mail.ywnds.com
mydomain = ywnds.com
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8
message_size_limit = 20485760
mailbox_size_limit = 5097152000
show_user_unknown_table_name = no
bounce_queue_lifetime = 1d
maximal_queue_lifetime = 1d
home_mailbox = Maildir/
#home_mailbox = Mailbox
#mailbox_command = /some/where/procmail
參數(shù)解釋:
inet_protocols = all
#指定協(xié)議。
inet_interfaces = 192.168.60.10,127.0.0.1
#指定postfix系統(tǒng)監(jiān)聽的網(wǎng)絡(luò)接口。
myhostname = mail.ywnds.com
#指定主機(jī)名。
mydomain = ywnds.com
#指定域名,默認(rèn)情況下postfix將myhostname的第一部分刪除而作為mydomain的值。
myorigin = $mydomain
#用來自動補(bǔ)全本域用戶,用來指明發(fā)件人所在的域名,即做發(fā)件地址偽裝。
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#這里定義了Postfix接收郵件時(shí)的收件人域名,即Postfix要接收哪些域名的郵件,不在此區(qū)域內(nèi)的都算是中繼郵件,如果不加$mydomain的話那么就不允許收本域內(nèi)郵件。
mynetworks = 127.0.0.0/8
#根據(jù)網(wǎng)絡(luò)地址中繼,默認(rèn)給你所在的整個(gè)網(wǎng)絡(luò)中繼,postfix系統(tǒng)根據(jù)其值來區(qū)別用戶是遠(yuǎn)程的還是本地的,這里設(shè)置只給本機(jī)中繼。
message_size_limit = 20485760
mailbox_size_limit = 5097152000
show_user_unknown_table_name = no
#郵件大小限制為20M,郵箱大小限制為5G。
bounce_queue_lifetime = 1d
maximal_queue_lifetime = 1d
#隊(duì)列超時(shí)限制為1天。
home_mailbox = Maildir/
home_mailbox = Mailbox
# 郵箱投遞方式有兩種:一種是Mailbox方式,即同一個(gè)用戶的所有郵件內(nèi)容存儲為單個(gè)文件,通常保存在/var/spool/mail/目錄下文件名與用戶名相同(Postfix默認(rèn)使用);第二種是Maildir方式,即使用目錄結(jié)構(gòu)來存儲用戶的郵件內(nèi)容每一個(gè)用戶使用一個(gè)文件夾,每封郵件都作為一個(gè)獨(dú)立的文件存放。Maildir方式的存取速度和效率要好一些對于管理郵件內(nèi)容頁更加方便。
mailbox_command = /some/where/procmail
#這里可以配置MDA使用procmail方式(postfix默認(rèn)的投遞代理)。
注意問題
1、在postfix的配置文件中,參數(shù)行和注釋行是不能處在同一行中的;
2、任何一個(gè)參數(shù)的值都不需要加引號,否則,引號將會被當(dāng)作參數(shù)值的一部分來使用;
3、每修改參數(shù)及其值后執(zhí)行 postfix reload 即可令其生效;但若修改了inet_interfaces,則需重新啟動postfix;
4、如果一個(gè)參數(shù)的值有多個(gè),可以將它們放在不同的行中,只需要在其后的每個(gè)行前多置一個(gè)空格即可;postfix會把第一個(gè)字符為空格或tab的文本行視為上一行的延續(xù);
SMTP協(xié)議發(fā)送郵件命令
Linux中Postfix郵件發(fā)送配置(三)Linux中Postfix郵件發(fā)送配置(三)
SMTP狀態(tài)碼:
1xx:純信息
2xx:正確
3xx:上一步操作尚未完成,需要繼續(xù)補(bǔ)充
4xx:暫時(shí)性錯誤
5xx:永久性錯誤
SMTP協(xié)議非常簡單,簡單到允許任何用戶發(fā)送郵件同時(shí)也允許發(fā)送到任何用戶。在發(fā)件人(MAIL FROM)哪里可以隨意指定地址。但是收件人(RCPT TO)可以發(fā)給本域內(nèi)用戶也可以通過中繼發(fā)送給其他域用戶。如163或QQ郵箱。但是一般公網(wǎng)郵箱都是需要進(jìn)行發(fā)件人域名反向解析,如果能解析就接收郵件,不能解析就丟失郵件。如果全部解析就有點(diǎn)太苛刻了,也可以針對部分域名進(jìn)行解析。不信你可以把發(fā)件人改為[email protected]試試你的收件人還能不能收到郵件。(如果輸入錯誤信息可以按Ctrl加退格鍵即可)
Postfix默認(rèn)允許本機(jī)和本機(jī)所在網(wǎng)絡(luò)的所有主機(jī)都允許中繼,所以可以發(fā)給其他域郵件。但是由于我們上面是用來了指令“mynetworks = 127.0.0.0/8”表示只給本機(jī)中繼。所以其他主機(jī)是無法發(fā)送郵件給其他域的,如下圖:
Linux中Postfix郵件發(fā)送配置(三)Linux中Postfix郵件發(fā)送配置(三)
注意:127.0.0.1跟192.168.60.10雖然都能訪問本機(jī),但它們兩的意義不同,127.0.0.1是在本機(jī)內(nèi)部,而192.168.60.10是通過網(wǎng)卡的。另外查看郵件服務(wù)器的日志信息在/var/log/maillog
創(chuàng)建兩個(gè)郵箱測試用戶并給密碼(密碼也同用戶名)
$ useradd -s /sbin/nologin openstack
$ useradd -s /sbin/nologin hadoop
郵件別名
郵件別名可以把發(fā)送給一個(gè)用戶的郵件轉(zhuǎn)給另外一個(gè)用戶,可以在/etc/aliases文件中可以定義用戶別名格式如下:
Openstack: root
表示所有發(fā)給Openstack用戶的郵件,都發(fā)送給root用戶。但是Postfix不會使用這個(gè)文件因?yàn)樵谖谋疚募袡z索太慢了,所以需要通過hash編碼轉(zhuǎn)換為另外一種格式/etc/aliases.db(postfix支持hash格式),而newaliases命令就可以進(jìn)行它們之間的相互轉(zhuǎn)碼的,直接執(zhí)行命令newaliases即可。
郵件隊(duì)列
Postfix 維護(hù)兩個(gè)隊(duì)列:未決郵件隊(duì)列(pending mails queue)和等待郵件隊(duì)列(deferred mail queue)。等待隊(duì)列包含了暫時(shí)發(fā)送失敗、需要重新發(fā)送的郵件,Postfix 會定期重發(fā)(默認(rèn)5分鐘,可自定義設(shè)置)。
其實(shí) Postfix 維護(hù)5個(gè)隊(duì)列:
輸入隊(duì)列,郵件進(jìn)入Postfix系統(tǒng)的第一站;
活動隊(duì)列,qmgr 將輸入隊(duì)列的郵件移到活動隊(duì)列;
等待隊(duì)列,保存暫時(shí)不能發(fā)送出去的郵件;
故障隊(duì)列,保存受損或無法解讀的郵件;
保留隊(duì)列,將郵件無限期留在 Postfix 隊(duì)列系統(tǒng)中;
列出郵件隊(duì)列
$ postqueue -p
刪除所有隊(duì)列郵件
$ postsuper -d ALL deferred
刪除所有郵件
stsuper -d ALL
PS:發(fā)送一份郵件一般也可使用tail /var/log/maillog查看郵件隊(duì)列日志信息,如“status=sent”表示郵件發(fā)送成功,而“status=deferred”表示郵件在等待隊(duì)列。
新聞標(biāo)題:詳解Linux中Postfix郵件發(fā)送配置
鏈接地址:http://fisionsoft.com.cn/article/dhhejis.html


咨詢
建站咨詢
