1. 程式人生 > >shell命令行下發送郵件

shell命令行下發送郵件

-a image 創建 smtp 完成 成了 我想 事先 鏈接

我的電腦用於學習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命令行下發送郵件