shell命令行下發送郵件
我的電腦用於學習linux,所以分區,格式化,重裝系統經常事。
很多時候,寫完筆記,並沒有對數據進行備份。因為我想我不會再重裝系統了,但這種想法經常被打破。
為了解決這個問師,我選擇用移動硬盤備份,但是文件太小,而且總插拔移動硬盤對硬件也不太好。另一種方法我選擇打開郵箱,把筆記發送到郵箱裏,但麻煩的是每次打開網頁,輸入密碼,創建郵件也很繁瑣。
如果能在命令行下,一條命令就把它送到郵箱就牛了。為了這個我找了一些資料,但只有在centos下測試成了。deepin沒有相關的文章,參考ubuntu又總不成功,不知道為啥……
今天依然沒有死心,又找到一篇文章(ubuntu 發送郵件的),測試了一下,居然成功了。
現在分享一下:
一、安裝
sudo apt install heirloom-mailx
二、尋找mail命令
根據資料提示,安裝完之後運行mail命令就可以了,但我運行提示我沒有mail這個命令, 前幾次也是這樣。 真讓人崩潰!!
不過今天還是想碰碰運氣,怎麽會沒有mail命令呢?
既然安裝了mailx,我想查查安裝在什麽位置了。
which heirloom-mailx
發現在:/usr/bin/heirloom-mailx。 根據目錄的規則/usr/bin下面應該是二進制文件,但命令名這麽長,怎麽回事? 於是顯示一下長格式信息。
ls -l /usr/bin/heirloom-mailx lrwxrwxrwx 1 root root 6 Jan 28 2017 /usr/bin/heirloom-mailx -> s-nail
發現此文件是一個鏈接文件 ,那麽s-nail是不是相當於資料上寫的mail命令呢?
先不管了,我就把它當成mail吧,於是自己創建一個s-nail鏈接
sudo ln -s /usr/bin/s-nail /usr/bin/mail
三、配置
根據資料的提示,配置文件為/etc/s-nail.rc,把下面幾行放置在最後
set [email protected]
set smtp=smtp.163.com
set [email protected]
set smtp-auth-password=123456
set smtp-auth=login
把xxx改成自己的郵件,把密碼改成自己郵件配置的密碼(註意:不是郵箱密碼,是客戶端授權密碼),當然你需要事先把郵箱設置一下。
四 、測試發送郵件
- mail 就是剛才自己創建的鏈接文件。
- -s "主題“,就是發郵件時填寫的郵件標題
- [email protected] 表示給誰發送的
回車之後輸入郵件的正文,輸入完成後按ctrl+d結束輸入,之後提示您是否發送這條信息,輸入yes發送成功。
我登錄郵件檢查一下果然收到了。
五、定制我的發送郵件命令
我要把筆記碎片發到郵件,只需要一個標題,添加多個附件就可以了。比如:
up "title" file.txt 1.jpg ...
up是自己定義的命令,"title"是郵件的標題,file.txt是文章碎片, 1.jpg是一張圖片等, 按回車發送。
有了想法就好辦了,自己定制一個腳本:
#!/bin/bash
if [ $# -lt 2 ]; then
echo "up subject attachment ..."
exit 1
fi
first=1
attachment=""
for i in $@
do
if [ $first -eq 1 ]; then
first=0
else
attachment="$attachment -a $i "
fi
done
echo "$1..." | mail -s $1 $attachment [email protected]
測試:
up 測試發送郵件 1.png 2.jpg 筆記.txt
shell命令行下發送郵件