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

猜你喜欢

转载自www.cnblogs.com/myccloves/p/9420584.html