Linux 發送郵件的命令行應用

發送郵件有超多種方法,可是接收郵件就要麻煩不少。因此這裏先只講發送郵件

先說明下:無論是什麼郵件客戶端,都是能夠直接發郵件的。可是,由於默認的話,發件人是很隨便地設置成你本機地名字。而且100%會被郵箱當成垃圾郵件處理。若是你去垃圾箱裏找,仍是能夠看到的。這就是爲何,咱們仍是須要配置它,讓它登陸某個郵箱來使用它的身份發郵件了,好比gmail郵箱或阿里雲郵箱。(國內的163和qq郵箱都已經屏蔽第三方客戶端登陸了)html

另注:爲何現在這麼電子技術這麼發達的年代,命令行郵件終端相關的應用和文章還這麼少幾乎都是不少年前的?我想是由於:python等都已經能很好很方便支持發郵件了,不必折騰命令行版本。
事實上,試過就知道:爲何這些客戶端會被拋棄了。。。請看下面我入的坑:

Mail

注:Mail的配置至關麻煩,網上找文章也寥寥無幾,有也都是十幾年前的東西。因此建議放棄,使用更先進的客戶端。

Mutt

Mutt是Linux郵箱客戶端榜上有名的利器了。

先不說什麼界面操做之類的,由於咱們用命令行的郵箱客戶端都是用來自動化的,不想用什麼界面。python

參考:Linux使用mutt發送郵件linux

安裝

其中mutt是軟件自己,msmtp是用來幫助發件的工具。shell

# Linux
$ sudo apt-get install mutt msmtp

# 或Mac
$ brew install mutt msmtp

配置

你須要配置兩個文件,一個是~/.muttrc用來配置Mutt自己,一個是~/.msmtprc用來配置發件人的,須要寫入密碼一類的。vim

參考:Linux下使用mutt,msmtp發信服務器

配置~/.msmtprc:工具

account     Aliyun
host        smtp.aliyun.com
from        jason@aliyun.com
auth        login
user        jason@aliyun.com
password    abcde123123123
account default : Aliyun
logfile ~/.msmtp.log

而後必須修改~/.msmtprc文件的權限,不然程序沒法讀取,發郵件時會報錯。修改以下:阿里雲

chmod 600 ~/.msmtprc

配置~/.muttrc加密

set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="Jason"
set from="Jason@aliyun.com"
set envelope_from=yes
set editor="vim -nw"

注意:第一條set sendmail中的位置不必定是這樣的,在Mac和Linux上都會不一樣,因此須要用which msmtp來找到它的真實位置,再填進去。spa

關於配置的解釋能夠看這裏:
image

發送郵件命令格式

注意:收件人的地址前必定要明確指定參數名--,以下所示。不然沒法正確發送附件。

# 經常使用格式以下 -s   「標題」  -c    抄送  -a  附件
$ echo 「HELLO WORLD」 | mutt -s 「TITLE」 -- RECIPIENT@gmail.com

# 發送HTML格式漂亮的郵件
$ mutt -- RECIPIENT@gmail.com -e 'set content_type="text/html"' -s "TITLE" < out.html

# 發送給多人,抄送,添加附件
$ echo "hello" | mutt -s "TITLE" aaa@gmail.com, bbb@gmail.com -c ccc@gmail.com -a /home/pi/pic.jpg address="RECIPIENT@gmail.com"

# 發送郵件時設置郵件的文本類型爲:html格式,郵件的等級爲:重要
$ echo $content | mutt  -s "${subject}" -e 'set content_type="text/html"' -e 'send-hook . "my_hdr  X-Priority: 1"' $address

語法:
image

參數:
image

Mutt發送HTML漂亮富文本郵件

默認語法是:

$ mutt -- RECIPIENT@gmail.com -e 'set content_type="text/html"' -s "TITLE" < out.html

可是,值得注意的是,語法雖然簡單,可一旦你本機的mutt版本不對,郵件將沒法顯示出正確的格式,而只是無盡的html源代碼。
經過mutt -v能夠看到,發送出顯示正常的郵件的mutt版本是在樹莓派上安裝的Mutt 1.5.23 (2014-03-12)。而不成功的是在Mac上的Mutt 1.9.5 (2018-04-13),反而是最新的版本!

郵箱配置

image

  • 163郵箱

image

  • 新浪郵箱
- 新浪@sina.com郵箱,
接收服務器地址爲:pop.sina.com或pop3.sina.com,
發送服務器地址爲:smtp.sina.com

- 新浪@sina.cn郵箱,
接收服務器地址爲:pop.sina.cn或pop3.sina.cn,
發送服務器地址爲:smtp.sina.cn

- 端口號設置:
POP協議:pop端口:1十、smtp端口:25 
IMAP協議:IMAP 端口:14三、smtp端口:25

- 加密設置:
pop是99五、imap的是993
smtp是587或465,如465不能正常使用,
能夠更換587試試,但不一樣的國家有可能只支持
一個端口(並不是全部客戶端都支持加密碼) 。
相關文章
相關標籤/搜索