導航:首頁 > 程序命令 > postfix命令發郵件

postfix命令發郵件

發布時間:2024-06-30 13:46:51

『壹』 用linux系統搭建postfix郵件伺服器,但是區域網可以實現互發郵件,不能給其他的公網郵箱互發郵件,求解

快速配置Postfix郵件伺服器

Postfix最被人稱道的地方就在於其配置文件的可讀性很高。Postfix的主配置文件是/etc/postfix/main.cf。

在main.cf文件中,參數都是以類似變數的設置方法來設置的,這些參數的使用主要包含兩部分的內容:

(1)定義和聲明變數:例如definename = good-better-best。等號左邊是變數的名稱,等號右邊是變數的值。

(2)引用變數:可以在變數的前面加上符號「$」來引用該變數,如:myname = $ definename(相當於definename = good-better-best)。

需要注意的是:等號兩邊需要有空格字元。此外,如果變數有兩個以上的設置值,就必須用逗號「,」或者空格符「 」將它們分開。

在熟悉了上述變數的定義和引用方法後,下面詳細介紹如何安全、高效地配置Postfix伺服器的相關選項。

1.設置Postfix服務監聽的網路介面

默認情況下,inet_interfaces參數的值被設置為localhost,這表明只能在本地郵件主機上寄信。如果郵件主機上有多個網路介面,而又不想使全部的網路介面都開放Postfix服務,就可以用主機名指定需要開放的網路介面。不過,通常是將所有的網路介面都開放,以便接收從任何網路介面來的郵件,即將inet_interfaces參數的值設置為「all」,如下所示:

inet_interfaces = all

2.安全設置可接收郵件的主機名稱或域名

mydestination參數非常重要,因為只有當發來的郵件的收件人地址與該參數值相匹配時,Postfix才會將該郵件接收下來。通過該選項的設置可以過濾掉許多沒有經過認證和授權的郵件,從而節省伺服器的存儲空間,以及節省用戶的郵件處理時間。

舉一個簡單的例子,用戶可以將該參數值設置為如下:

accept_domain = test.net
mydestination = $accept_domain

這就表明無論來信的收件人地址是[email protected](其中X表示某用戶在test.net域中的郵件賬戶名),Postfix都會接收這些郵件。而除此之外的郵件,Postfix都不會接受。

3.安全設置可轉發郵件的網路(IP設置)

有關安全設置可轉發郵件的網路可以使用mynetworks參數來設置。可將該參數值設置為所信任的某台主機的IP地址,也可設置為所信任的某個IP子網或多個IP子網(採用「,」或者「 」分隔)。

比如,用戶可以將mynetworks參數值設置為172.168.96.0/24,則表示這台郵件主機只轉發子網172.168.96.0/24中的客戶端所發來的郵件,而拒絕為其他子網轉發郵件:

mynetworks = 172.168.96.0/24

除了mynetworks參數外,還有一個用於控制網路郵件轉發的參數是mynetworks-style,它主要用來設置可轉發郵件網路的方式。通常有以下三種方式:

(1)class:在這種方式下,Postfix會自動根據郵件主機的IP地址得知它所在的IP網路類型(即A類、B類或是C類),從而開放的它所在的IP網段。

(2)subnet:這是postfix的默認值,postfix會根據郵件主機的網路介面上所設置的IP地址、子網掩碼來得知所要開放的IP網段。

(3)host:在這種方式下,postfix只會開放本機。

通常,用戶一般不需要設置mynetworks-style參數,而直接設置mynetworks參數。如果這兩個參數都進行了設置,那麼mynetworks參數的設置有效。

4.設置可轉發郵件的網路(域名設置)

上面介紹的mynetworks參數是針對郵件來源的IP來設置的,而relay_domains參數則是針對郵件來源的域名或主機名來設置的,其實從原理上來說是一致的,不過是區分了IP地址和域名而已,不過,relay_domains還需要依賴DNS這個基礎設施。

例如,用戶可以將relay_domains參數值設置為test.net,則表示任何由域test.net發來的郵件都會被認為是信任的,Postfix會自動對這些郵件進行轉發,如下所示:

relay_domains = test.net

那麼,要使它能在實際網路中更好地轉發郵件,還必須進行相應的DNS設置。那麼,需要在該網路的DNS伺服器上定義了一個主區域test.net,並在該區域配置文件中定義了以下記錄:

//定義郵件伺服器的IP地址
patterson.test.net. IN  A  172.168.96.254
//定義郵件伺服器的別名
mail.test.net. IN CNAME  patterson.test.net.
//定義優先順序別
test.net.  IN MX  10 mail.test.net.

上述記錄只對郵件伺服器進行了定義,還有諸如SOA、NS等的定義,在這里就不再贅述。

配置Postfix使用SMTP安全認證

Postfix默認不會對外開放轉發功能,而僅對本機(localhost)開放轉發功能。但是,在實際應用中,必須在Postfix主配置文件中通過設置mynetworks、relay_domains參數來開放一些所信任的網段或網域,否則該郵件伺服器幾乎沒有什麼用處。在開放了這些所信任的網段或網域後,還可以通過設置SMTP認證,對要求轉發郵件的客戶端進行用戶身份(用戶賬戶名與密碼)驗證。只有通過了驗證,才能接收該用戶寄來的郵件並幫助轉發。同樣,Postfix中目前比較常用的SMTP認證機制是通過Cyrus SASL包來實現的。

默認情況下,Postfix並沒有啟用SMTP認證機制。要讓Postfix啟用SMTP認證,就必須對Postfix的主配置文件/etc/postfix/main.cf進行修改。用戶需要在main.cf文件中添加如下有關SMTP認證的設置部分:

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = ''
smtpd_recipient_restrictions = permit_mynetworks
permit_sasl_authenticated, reject_unauth_destination
broken_sasl_auth_clients=yes
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options = noanonymous

其中,每個選項的具體含義如下:

(1)smtpd_sasl_auth_enable:指定是否要啟用SASL作為SMTP認證方式。默認不啟用,這里必須將它啟用,所以要將該參數值設置為yes。

(2)smtpd_sasl_local_domain:如果採用Cyrus-SASL版進行認證,那麼這里不做設置。

(3)smtpd_recipient_restrictions:表示通過收件人地址對客戶端發來的郵件進行過濾。通常有以下幾種限制規則:
permit_mynetworks:表示只要是收件人地址位於mynetworks參數中指定的網段就可以被轉發郵件。
permit_sasl_authenticated:表示允許轉發通過SASL認證的郵件。
reject_unauth_destination:表示拒絕轉發含未信任的目標地址的郵件。

(4)broken_sasl_auth_clients:表示是否兼容非標準的SMTP認證。有一些Microsoft的SMTP客戶端採用非標準的SMTP認證協議,只需將該參數設置為yes就可解決這類不兼容問題。

(5)smtpd_client_restrictions:表示限制可以向Postfix發起SMTP連接的客戶端。如果要禁止未經過認證的客戶端向Postfix發起SMTP連接,則可將該參數值設置為permit_sasl_authenticated。

(6)smtpd_sasl_security_options:用來限制某些登錄的方式。如果將該參數值設置為noanonymous,則表示禁止採用匿名登錄方式。

在完成上述設置後,必須使用

/etc/init.d/postfix reload

重新載入配置文件,或使用

/etc/init.d/postfix restart

重新啟動Postfix服務,以使該配置生效。這兩個命令的具體使用需要根據不同的Linux版本來選用。

此外,由於當Postfix要使用SMTP認證時,會讀取/usr/lib/sasl2/smtpd.conf文件中的內容,以確定所採用的認證方式,因此如果要使用saslauthd這個守護進程來進行密碼認證,就必須確保/usr/lib/sasl2/smtpd.conf文件中的內容為:

pwcheck_method: saslauthd

『貳』 linux下,如何通過postfix使用命令行來發送附件

  1. 安裝的postfix使用mail命令現在是無法正常帶附件形式的;


  2. 可以使用mutt,但是這個發送的附件在網頁端查看有時候會變成bin文件

    建議客戶端查看這樣的測試郵件

    yum install mutt

    [email protected]"11222"-arsync-3.1.1.tar.gz</root/test.txt

『叄』 雲上那些事: postfix 使用中繼模式發送郵件

背景:

由於安全因好擾辯素,阿里雲會封掉25port, 這導致我們自建的監控系統無法發送郵件,因為是輕量型應用,申請解封失敗,遂按照推薦的方式採用了465 port 和relay的模式進行告警郵件的發送

組件構成:

一個main,cf

一個master.cf

一個sasl_password  和生成的sasl_password.db

一個generic 和生成的generic.db文件

步驟:

由於我李尺們使用的是ubuntu18.04,所以此處以此為例:

#安裝postfix 

apt upgrade

apt install postfix  ,選擇 Internet Site (  如果安裝了sendmail 請將其停止或者卸載)

#添加465埠發信

vim /etc/postfix/master,cf

添加 smtps inet n - - - - smtpd

解除注釋: -o smtpd_tls_wrappermode=yes

!wq 保存退出

vim /etc/services

添加 smtps    465/tcp    mail2

        smtps    465/udp    mail2

#創建相關授權文件及虛擬映射文件

vim /etc/postfix/sasl_passwd

[smtp.163.com]:465    [email protected]:授權碼

!wq  保存退出

postmap /etc/postfix/sasl_passwd 生成sasl_passwd.db 文件

vim /etc/postfix/generic

root@monitor    [email protected]        (#要和上面文件內的一樣)

!wq 保存退出

postmap /etc/postfix/generic    生成generic.db 文件

#編輯主配置文件

vim /etc/postfix/main.cf

新增如下:

smtp_sasl_auth_enable = yes

#smtp_sasl_type = cyrus

smtp_sasl_security_options=noanonymous

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtp_tls_security_level = encrypt

smtp_tls_wrappermode = yes

smtp_generic_maps = hash:/etc/postfix/generic

修改如下:

inet_protocols = ipv4

#重啟服務

systemctl restart postfix

測試發送,如有問題請檢查log

主要報錯:

1

status=deferred (delivery temporarily suspended: lost connection with smtp.163.com[220.181.12.12] while receiving the initial server greeting)

要配置relay 模式

2:

status=deferred (SASL authentication failed; cannot authenticate to server smtp.163.com[220.181.12.17]: no mechanism available)

修改/etc/postfix/main.cf

smtp_sasl_security_options=noanonymous

3:

status=bounced (host smtp.163.com[220.181.12.16] said: 553 Mail from must equal authorized user (in reply to MAIL FROM command))

修改 /etc/postfix/generic 把主機名和郵箱名字修復正確。友缺

4

postfix/smtp[3218]: SMTPS wrappermode (TCP port 465) requires setting "smtp_tls_wrappermode = yes", and "smtp_tls_security_level = encrypt" (or stronger)

按照報錯提示在主文件添加相關配置項

參考資料:    https://itlaws.cn/post/postfix-use-external-smtp/

閱讀全文

與postfix命令發郵件相關的資料

熱點內容
zip壓縮文件下載 瀏覽:551
移動app語音在哪裡 瀏覽:481
程序員入職簽約時間 瀏覽:718
python操作客戶端軟體的庫 瀏覽:146
第10胸椎壓縮性骨折 瀏覽:646
python和matlab量化 瀏覽:78
文件夾右鍵閃退怎麼解決 瀏覽:728
安卓平板如何連接有線投影儀 瀏覽:655
什麼app是賣玉鐲 瀏覽:490
把單個ipk編譯進openwrt 瀏覽:23
國家反詐中心app怎麼防詐騙 瀏覽:836
如何用手機雲伺服器進入游戲 瀏覽:513
linuxpreempt 瀏覽:257
網劇程序員那麼可愛超長預告 瀏覽:309
gg腳步編譯器 瀏覽:111
文件夾如何顯示不可用 瀏覽:215
iphone怎麼數據轉移到安卓手機 瀏覽:462
對數基本性質與運演算法則 瀏覽:142
坦克app商城購物券怎麼用 瀏覽:295
方舟編譯器對程序員的影響 瀏覽:968