测试环境:Ubuntu 11.10

1. 安装mutt及msmtp软件

sudo apt-get install mutt
sudo apt-get install msmtp

2. 编辑配置文件vi ~/.muttrc

set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="Guobao Jiang"
set from=loveaborn@163.com
set envelope_from=yes

3.编辑配置文件vi ~/.msmtprc  (账号和密码相应改动,最好把该文件属性改为:

chmod 700 ~/.msmtprc

其他人不能修改和查看)

account default
host smtp.163.com
from loveaborn@163.com
auth plain
user loveaborn
password ####
logfile ~/.msmtp.log

4.编写自动发送邮件脚本,如下:

#!/bin/bash
######################################################################################
# this shell script is used to send mail automatically
# the root structure is
# .
# ./autosend.sh -- this shell script
# ./attach/ -- this folder stored mail's all attachment.
# ./bak/ -- for backup
# ./log/ -- send & unsend log files
# ./mail/ -- mail text content, default file name './mail/mail.md'
# ./readme.md -- readme file (not mandatory)
# version: v0.1 @Aug. 4, 2013, by Guobao Jiang
###################################################################################### dateInfo="$(date +%Y-%m-%d-%H-%M-%S)"
attachName="attach_$dateInfo.tar.gz";
contentFile="./mail/mail.md"
toName="loveaborn@foxmail.com"
ccName="loveaborn@163.com"
if [ -f ./mail/mail.md ]; then
if [ ! -f ./log/send.log ];then
touch ./log/send.log
fi
sendLog="./log/send.log"
tar zcvf $attachName ./attach
sleep 2
rm -rf ./attach/*
mkdir -p "./bak/mail_$dateInfo"
cp $attachName "./bak/mail_$dateInfo"
cp ./mail/mail.md "./bak/mail_$dateInfo" echo -e " " >>$contentFile
echo -e "------------------" >> $contentFile
echo -e "Note: This mail is automaticall by my server." >> $contentFile
echo -e "BR// Guobao Jiang (loveaborn@foxmail.com)" >> $contentFile
echo -e "DateRecord: $dateInfo" >> $contentFile echo -e " " >>"$sendLog"
echo -e "-----------------------------------" >>"$sendLog"
echo -e "Sending mail..." >>"$sendLog" mutt -s "Update Experiments Result $dateInfo" -c $ccName $toName \
-a $attachName< "$contentFile" if [ $? -eq 0 ]; then
rm -rf $attachName
rm -rf ./mail/mail.md
#rm -rf ./attach/* # if success, delete all attachment files.
echo -e "mail was sent to $toName and cc to $ccName successully!" >> \
"$sendLog"
else
rm -rf $attachName
rm -rf "./bak/mail_$dateInfo"
echo -e "mail sent failed! Please try again!" >>"$sendLog"
fi
echo -e "RecordTime:$dateInfo" >>"$sendLog" else
if [ ! -f ./log/record.log ]; then
touch ./log/nosend.log
fi
echo -e "No mail contents to send! RecordTime: $dateInfo" >>./log/nosend.log
fi

注意0: 文件autosend.sh,添加可执行属性

chmod u+x autosend.sh

注意1:附近 -a $attachName 放在最后,不然会出现如下错误:

Can’t stat loveaborn@foxmail.com: No such file or directory
loveaborn@foxmail.com: unable to attach file.

注意2:我的邮件内容是放在./mail/mail.md文件里的,发送完会备注到./bak下并删除原来的文件。

目录结构如下:

参考链接:点击

Ubuntu Linux自动发邮件配置及邮件发送脚本的更多相关文章

  1. ubuntu Linux 操作系统安装与配置

    Ubuntu是一个以桌面应用为主的Linux操作系统.Ubuntu每六个月发布一个新版本(一般是4和10月份,命名为YY.MM),每一个普通版本都将被支持 18个月,长期支持版(Long Term S ...

  2. jenkins邮件配置以及邮件添加附件详解

    1.在系统管理-系统设置  中找到邮件配置模块 填写情况如下图 第一步,填写系统管理员邮箱 第二步,填写邮箱配置 第三步,然后在项目中添加邮箱配置 项目中邮件设置中关于附件添加 因为我的项目目录中分3 ...

  3. svn自动发用户名密码到邮件(明文密码)

    #!/bin/sh touch testlist cat /dev/null > testlist grep "=" passwd |grep -v "#" ...

  4. jekins构建通知邮件配置及邮件附件设置,jenkins构建通知邮件没有RF的log和report文件

    全局配置: 系统管理-系统设置-Extended E-mail Notification (本邮件是程序自动下发的,请勿回复!)<br/><br/>项目名称:$PROJECT_ ...

  5. ubuntu linux环境下安装配置jdk和tomcat

    关于linux搭建服务器,ubuntu中jdk和tomcat的安装和配置 一.jdk的安装配置 1:去官网下载好自己需要的版本,注意,linux压缩文件通常以tar.gz结尾,别下载错了.本次我下载安 ...

  6. (实用)Ubuntu Linux静态IP网络配置

    记录备忘. 基于Ubuntu 14.04 LTS Server. 首先查看一下当前系统的网卡: $ sudo iconfig 比如这里我除了回环网路lo外,网络接口名为em1,下面就去给它配置网络. ...

  7. Ubuntu linux下部署golang配置环境,极客学院 无闻讲的安装配置是错的,折腾我好几遍,真是有点坑

    开始按极客学院无闻讲的做,弄了几遍都不行,最后发现是错的,别人告诉我这是mac下的virtualbox是这样的,不管怎样,被坑的不浅. 虽然sudo apt install golang-go 就能安 ...

  8. SQL Server代理(4/12):配置数据库邮件

    SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 在以前的文章里我们看到,SQL Serve ...

  9. Jenkins之发送html附件邮件配置

    邮件配置: 邮件内容范例: ${FILE,path="C:\\Users\\Administrator\\.jenkins\\workspace\\XXX自动化测试工程目录\\$JOB_BA ...

随机推荐

  1. ubuntu 16.04.1 LTS postgresql安装配置

    postgresql安装--------------------二进制安装:wget https://get.enterprisedb.com/postgresql/postgresql-9.5.6- ...

  2. CSS3组件化之圆波扩散

    本篇文章主要介绍用CSS3实现的水波扩散涟漪,圆波扩散,光圈扩散,雷达波向外散发动画. 预期效果应该是这样:,其实应该比这个更优美,因为设计师提供的gif出现透明度丢失问题,所以建议用css3实现. ...

  3. mysql高性能索引

    独立索引: 独立索引是指索引列不能是表达式的一部分,也不能是函数的参数 例1: SELECT actor_id FROM actor WHERE actor_id+1=5 --这种写法,就算在acto ...

  4. python opencv3 检测人

    git:https://github.com/linyi0604/Computer-Vision # coding:utf-8 import cv2 # 检测i方框 包含o方框 def is_insi ...

  5. python opencv3 获取摄像头视频

    git:https://github.com/linyi0604/Computer-Vision # coding:utf8 import cv2 """ 捕获摄像头10 ...

  6. wpf企业应用之带选项框的TreeView

    wpf里面实现层次绑定主要使用HierarchicalDataTemplate,这里主要谈一谈带checkbox的treeview,具体效果见 wpf企业级开发中的几种常见业务场景. 先来看一下我的控 ...

  7. [Luogu5162]WD与积木(多项式求逆)

    不要以为用上Stirling数就一定离正解更近,FFT都是从DP式本身出发的. 设f[i]为i个积木的所有方案的层数总和,g[i]为i个积木的方案数,则答案为$\frac{f[i]}{g[i]}$ 转 ...

  8. [BZOJ4811][YNOI2017]由乃的OJ(树链剖分+线段树)

    起床困难综合症那题,只要从高往低贪心,每次暴力跑一边看这一位输入0和1分别得到什么结果即可. 放到序列上且带修改,只要对每位维护一个线段树,每个节点分别记录0和1从左往右和从右往左走完这段区间后变成的 ...

  9. Python168的学习笔记1

    在对list的条件选择有两种常用方法,直接使用filter函数,就是filter(func,sequence);另外一种就是迭代操作,类似 x for x in sequence func.这两种方法 ...

  10. hihocoder #1299 : 打折机票 线段树

    #1299 : 打折机票 题目连接: http://hihocoder.com/problemset/problem/1299 Description 因为思念新宿的"小姐姐"们, ...