溫馨提示×

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

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

三種使用Linux命令發(fā)送郵件

發(fā)布時(shí)間:2020-06-01 09:18:17 來(lái)源:網(wǎng)絡(luò) 閱讀:1467 作者:59090939 欄目:建站服務(wù)器


使用mail命令

mail命令是mailutils(On Debian)或mailx(On RedHat)包中的一部分,我們可以使用他在命令行里面發(fā)送消息。
如果你的系統(tǒng)沒(méi)有安裝mail命令,可以使用下面的方式安裝:

$ sudo apt-get install mailutils (On Debian)

# yum install mailx (On RedHat or CentOS)

現(xiàn)在我們來(lái)使用mail命令來(lái)發(fā)送帶附件的郵件,如下:

echo "這里輸入你郵件內(nèi)容" | mail -s "郵件標(biāo)題" -a file.txt 59090939@qq.com

在上面的命令中,-s 參數(shù)用于指定消息主題;-a 參數(shù)指定需要發(fā)送的附件路徑,貌似這個(gè)不能發(fā)送多個(gè)附件,-v參數(shù)顯示詳細(xì)的發(fā)送過(guò)程。
當(dāng)然,我們可以將郵件的內(nèi)容存到一個(gè)文件中,比如下面我們把郵件的內(nèi)容存儲(chǔ)到message.txt文件中,然后發(fā)送:

mail -s "郵件標(biāo)題" -a file.txt 59090939@qq.com < message.txt

這時(shí)候的message.txt是以文本內(nèi)容在郵件中顯示的,并不是以附件的形式。

我們?cè)诎l(fā)送附件的時(shí)候出現(xiàn)下面的錯(cuò)誤:

send-mail: fatal: xiao(40010): message file too big

從上面的錯(cuò)誤信息可以看出,我們發(fā)送的附件太大了,我們可以通過(guò)以下兩種方法來(lái)加大附件大小的限制:
第一種:

[root@xiao ~]$ postconf message_size_limit

message_size_limit = 51200000

echo "message_size_limit = 102400000" >> /etc/postfix/main.cf && service postfix reload

Reloading Postfix configuration...done.

第二種:

[root@xiao ~]$ postconf -e message_size_limit=302400000

[root@xiao ~]$ service postfix restart

Shutting down postfix: [ OK ]

Starting postfix: [ OK ]

[root@xiao ~]$ postconf message_size_limit

message_size_limit = 302400000

兩種方法都可以設(shè)置

配置郵箱賬戶(hù)

Vi /etc/mail.rc 在文件的最后添加如下兩段中的一段,國(guó)內(nèi)IP的話(huà)一般第一段就可以,國(guó)外有些IP要用第二段,安全級(jí)別更高

set from=59090939@qq.com

set smtp="smtp.qq.com"

set smtp-auth-user="59090939@qq.com"

set smtp-auth-password="ttvingav"

set smtp-auth=login

或者

set from=59090939@qq.com

set smtp="smtp.qq.com:587"

set smtp-auth-user="59090939@qq.com"

set smtp-auth-password="ttvingavu"

set smtp-auth=login

set smtp-use-starttls

set nss-config-dir=/etc/openldap/certs

使用mutt命令

mutt是一個(gè)流行輕量級(jí)的電子郵件客戶(hù)端命令,http://www.mutt.org/

我們同樣可以使用它發(fā)送帶附件的郵件,如果你的電腦沒(méi)有安裝這個(gè)命令,請(qǐng)使用下面命令安裝:

$ sudo apt-get install mutt

# yum install mutt

源碼安裝

wget ftp://ftp.mutt.org/pub/mutt/mutt-1.11.2.tar.gz

tar –zvxf mutt-1.11.2

cd mutt-1.11.2

./configure --prefix=/usr/local/mutt --enable-pop --enable-smtp --with-ssl --with-sasl
--enable-pop 啟用pop
--enable-smtp 啟用smtp
--with-ssl --with-sasl 在啟用上述協(xié)議的情況下,必須使用更安全的加密

安裝
make && make install

因?yàn)闇y(cè)試帳號(hào)是QQ郵件,qq郵件使用smtp協(xié)議的時(shí)候要求必須使用ssl安全連接,而在mutt里使用安全連接

又必須使用sasl加密,所以上述2個(gè)安全組件在編譯安裝的時(shí)候得加上。要不然發(fā)送郵件的時(shí)候會(huì)

出現(xiàn)“SMTP authentication requires SASL”或者另外一個(gè)跟ssl有關(guān)的錯(cuò)誤

配置郵箱賬戶(hù)vi /etc/Muttrc 文件的未尾添加如下內(nèi)容

set use_from=yes

set use_envelope_from=yes

set realname="59090939"

set from="59090939@qq.com"

set smtp_pass="ttvingavu"

set smtp_url="smtps://59090939@smtp.qq.com:465/"

國(guó)內(nèi)用465端口,用587會(huì)報(bào)如下錯(cuò)誤:

gnutls_handshake: 收到一個(gè)意外的 TLS 數(shù)據(jù)包。

無(wú)法發(fā)送此信件

現(xiàn)在我們可以使用mutt命令發(fā)送帶附件的郵件了:

echo "這里輸入你郵件內(nèi)容" | mutt -s "郵件標(biāo)題" -a file.txt 59090939@qq.com

從上面可以看出,mutt 的使用和 mail 命令很類(lèi)似,更多關(guān)于它的使用參數(shù)可以直接 man mutt 查看。

使用msmtp

云方式安裝

$ sudo apt-get install msmtp

# yum install mstp

源碼方式安裝

https://marlam.de/msmtp/

wget https://marlam.de/msmtp/releases/msmtp-1.8.1.tar.xz

xz -d msmtp-1.8.1.tar.xz

tar -xvf msmtp-1.8.1.tar

cd msmtp-1.8.1

yum -y install gnutls gnutls-devel gnutls-utils openssl openssl-devel libidn libidn-devel

如果不yum instll 那么后面可能會(huì)季報(bào)如下錯(cuò):

msmtp: support for TLS is not compiled in

./configure --prefix=/usr/local/msmtp --sysconfdir=/usr/local/msmtp/etc --with-ssl=openssl && sudo make && sudo make install

在用戶(hù)的主目錄中創(chuàng)建或編輯msmtp配置文件。我使用VI編輯器來(lái)實(shí)現(xiàn)這一目標(biāo)

vi /etc/msmtprc

account gmail

tls on

auth on

host smtp.gmail.com

port 587

user user1@gmail.com

from user1@gmail.com

password ******

account qqmail

tls on

auth on

tls_starttls off

tls_trust_file /etc/ssl/certs/ca-bundle.crt

host smtp.qq.com

port 465

user 59090939@qq.com

from 59090939@qq.com

password ttvingav

由于該文件包含密碼等敏感數(shù)據(jù),因此您應(yīng)分配安全權(quán)限

chmod 600 /etc/msmtprc

測(cè)試發(fā)送郵件,如果不出意外的,應(yīng)該可以正常發(fā)出郵件。

echo "hello" |msmtp -a qqmail -C /usr/local/msmtp/etc/msmtprc 59090939@qq.com

向AI問(wèn)一下細(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