溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux中如何配置Postfix郵件發(fā)送

發(fā)布時(shí)間:2022-02-18 09:44:22 來源:億速云 閱讀:603 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下Linux中如何配置Postfix郵件發(fā)送的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

Linux中如何配置Postfix郵件發(fā)送

部署DNS服務(wù)器

postfix根據(jù)域名和地址做一個(gè)MX記錄,A記錄,PTR記錄(一般在互聯(lián)網(wǎng)上郵件服務(wù)器都要反解,沒有PTR記錄會(huì)認(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)程都會(huì)用到,除非這些配置在 master.cf 文件中被重新設(shè)置了。

/etc/postfix/master.cf:這個(gè)文件保存了額外的進(jìn)程運(yùn)行時(shí)環(huán)境參數(shù),在 main.cf 文件中定義的配置可能會(huì)被本文件的配置覆蓋掉。

在配置文件中所有的參數(shù)都必須頂格寫不然就會(huì)當(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 = $mydomainmydestination = $myhostname, localhost.$mydomain, localhost, $mydomainmynetworks = 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#用來自動(dòng)補(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)容存儲(chǔ)為單個(gè)文件,通常保存在/var/spool/mail/目錄下文件名與用戶名相同(Postfix默認(rèn)使用);第二種是Maildir方式,即使用目錄結(jié)構(gòu)來存儲(chǔ)用戶的郵件內(nèi)容每一個(gè)用戶使用一個(gè)文件夾,每封郵件都作為一個(gè)獨(dú)立的文件存放。Maildir方式的存取速度和效率要好一些對(duì)于管理郵件內(nèi)容頁更加方便。

mailbox_command = /some/where/procmail

#這里可以配置MDA使用procmail方式(postfix默認(rèn)的投遞代理)。

注意問題

1、在postfix的配置文件中,參數(shù)行和注釋行是不能處在同一行中的;

2、任何一個(gè)參數(shù)的值都不需要加引號(hào),否則,引號(hào)將會(huì)被當(dāng)作參數(shù)值的一部分來使用;

3、每修改參數(shù)及其值后執(zhí)行 postfix reload 即可令其生效;但若修改了inet_interfaces,則需重新啟動(dòng)postfix;

4、如果一個(gè)參數(shù)的值有多個(gè),可以將它們放在不同的行中,只需要在其后的每個(gè)行前多置一個(gè)空格即可;postfix會(huì)把第一個(gè)字符為空格或tab的文本行視為上一行的延續(xù);

SMTP協(xié)議發(fā)送郵件命令

Linux中如何配置Postfix郵件發(fā)送
SMTP狀態(tài)碼:

1xx:純信息

2xx:正確

3xx:上一步操作尚未完成,需要繼續(xù)補(bǔ)充

4xx:暫時(shí)性錯(cuò)誤

5xx:永久性錯(cuò)誤

SMTP協(xié)議非常簡(jiǎn)單,簡(jiǎn)單到允許任何用戶發(fā)送郵件同時(shí)也允許發(fā)送到任何用戶。在發(fā)件人(MAIL FROM)哪里可以隨意指定地址。但是收件人(RCPT TO)可以發(fā)給本域內(nèi)用戶也可以通過中繼發(fā)送給其他域用戶。如163或QQ郵箱。但是一般公網(wǎng)郵箱都是需要進(jìn)行發(fā)件人域名反向解析,如果能解析就接收郵件,不能解析就丟失郵件。如果全部解析就有點(diǎn)太苛刻了,也可以針對(duì)部分域名進(jìn)行解析。不信你可以把發(fā)件人改為xxx@taobao.com試試你的收件人還能不能收到郵件。(如果輸入錯(cuò)誤信息可以按Ctrl加退格鍵即可)

Postfix默認(rèn)允許本機(jī)和本機(jī)所在網(wǎng)絡(luò)的所有主機(jī)都允許中繼,所以可以發(fā)給其他域郵件。但是由于我們上面是用來了指令“mynetworks = 127.0.0.0/8”表示只給本機(jī)中繼。所以其他主機(jī)是無法發(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è)郵箱測(cè)試用戶并給密碼(密碼也同用戶名)

$ useradd -s /sbin/nologin openstack
$ useradd -s /sbin/nologin hadoop

郵件別名

郵件別名可以把發(fā)送給一個(gè)用戶的郵件轉(zhuǎn)給另外一個(gè)用戶,可以在/etc/aliases文件中可以定義用戶別名格式如下:

Openstack:  root

表示所有發(fā)給Openstack用戶的郵件,都發(fā)送給root用戶。但是Postfix不會(huì)使用這個(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 會(huì)定期重發(fā)(默認(rèn)5分鐘,可自定義設(shè)置)。

其實(shí) Postfix 維護(hù)5個(gè)隊(duì)列:

輸入隊(duì)列,郵件進(jìn)入Postfix系統(tǒng)的第一站;

活動(dòng)隊(duì)列,qmgr 將輸入隊(duì)列的郵件移到活動(dòng)隊(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ì)列。

以上就是“Linux中如何配置Postfix郵件發(fā)送”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI