Shell脚本定时发送携带附件的邮件

分享一些技术,欢迎指点

使用mailx命名发送邮件需要先配置发送邮件的邮箱,第一步是先获取授权码

1.获取授权码

以QQ邮箱为例。点击邮箱设置,选择账户

在这里插入图片描述
找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,然后选择一个开启,我这边选择IMAP,然后就会获得一个授权码,记下来,后面会用到
在这里插入图片描述

2.配置mailx

下载安装mailx

   yum install -y mailx

编辑修改配置文件,修改时需要进入到root中,不然会没有修改权限

vim /etc/mail	或者 view /etc/mail

默认配置无需变更,只需要在末尾添加上发送邮件的配置即可,例如

set from=#你的QQ邮箱		#发送邮件后显示的邮件发送方
set smtp=smtp.qq.com	#各大厂商的邮件服务器--照抄就好
set smtp-auth-user=#你的QQ邮箱	#发件人邮箱上
set smtp-auth-password=#刚才获取的授权码	#发件邮箱的授权码
set smtp-auth=login				#动作为登录

我也是参考下面链接的,可以移步参考原文
原文链接:https://blog.csdn.net/qq_42534026/article/details/116585336

3.SQL查询

test.sql

spool test.csv #输出的Excel文件

#查询的数据输出格式,大小等
clear columns
clear buffer
set define on verify off echo off feedback off heading off
set head off truncate off pause off term on
set pagesize 0 linesize 120
set serveroutput on size 1000000
#=========================
#插入你的SQL代码
#=========================
/
spool off;
exit;

4.Shell脚本

test.sh

#!/bin/sh

date="`date +%y%m%d`"
f_db_output=test_$date.csv
f_db=test.csv #SQL的spool文件
f_log=log_$date.log
f_mail_content=mail_content.txt

user=#数据库用户名
pwd=#数据库密码
sid=#数据库SID
. $HOME/.bash_profile

excel="text1,text2,text3"#sql查询的表头
mail_subject="邮件主题"
mail_senduser="邮件发送对象邮箱"

{
sqlplus $user/$pwd @$sid  test.sql > $f_db_output 2>&1
echo $excel > $f_db
cat $f_db_output  >> $f_db
mailx -v -s "$mail_subject" -a $f_db $mail_senduser <f_mail_content
}
  需要抄送给其他人,在mailx命令后加入    -c "抄送人邮箱"

5.加入系统定时任务

crontab -e
f1 f2 f3 f4 f5  /路径/test.sh

其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,以次类推

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值