前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux发邮件shell脚本与群发邮件shell脚本

Linux发邮件shell脚本与群发邮件shell脚本

作者头像
全栈程序员站长
发布2022-11-01 15:57:21
3.3K0
发布2022-11-01 15:57:21
举报
文章被收录于专栏:全栈程序员必看

Linux发邮件shell脚本与群发邮件shell脚本

说明:因为明天统计疫情健康打卡,需要通知同学完成打卡,最开始是一个人一个人的进行QQ通知,为了方便通知,我利用Linux写了一个shell定时群发邮件提醒脚本,如果大家有需要的可以参考我的方式方法 下面我将我进行配置的方法分享给大家

1.Linux安装邮件服务

因为Linux默认没有安装mail邮件服务,我们将进行安装,输入安装命令等待几秒即可安装成功

代码语言:javascript
复制
yum install mailx

2.配置发送邮件服务即你的邮箱

2.1 在命令行中输入 vim /etc/mail.rc 后回车
2.2在文件的最后添加下面配置

编辑该文件前需要 先按键盘 i 进入编辑状态

代码语言:javascript
复制
# smtp服务器认证的用户名 
set from=xiaoandx@qq.com
# smtp服务器的地址  
set smtp=smtps://smtp.qq.com:465
# smtp服务器认证的用户名
set smtp-auth-user=xiaoandx@qq.com 
# smtp服务器认证的用户密码(授权码) 
set smtp-auth-password=#################
set smtp-auth=login 
# 忽略验证  
    
set ssl-verify=ignore 
set nss-config-dir=/root/.cert
2.3获取授权码
  • 先登录qq邮箱,登录成功后点击设置 找到账户
  • 找到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 然后点击生成授权码
2.4保存配置

先按键盘上的 ESC 退出编辑状态,然后输入 :wq! 保存退出

3.生成安全证书

发送邮件需要安全证书,通过下面命令来生成

代码语言:javascript
复制
mkdir -p /root/.certs/

echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt

certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs

注意:生成完成之后,修改 mail.rc 邮件配置,修改 nss-config-dir 为上面命令生成的 /root/.certs,保存即可。

4.邮件测试

代码语言:javascript
复制
echo "测试邮件" | mail -s -v "测试" xiaoandx@qq.com

如果收到邮件即测试成功

5.编写shell脚本

根据我的实际情况,我需要一个群发邮件的脚本,考虑到群发,我打算实用循环结合数组的形式

5.1先创建一个邮件集合
代码语言:javascript
复制
emailList=(
	"2324671838@qq.com"
	"2826819330@qq.com"
	.....
)
5.2写循环体
代码语言:javascript
复制
for var in ${emailList[@]}; do
	
done

补充说明: echo "所有的内容如下:" ${emailList[@]} echo "数组的长度:" ${ #emailList[*]} for var in ${emailList[@]} do echo "打印的内容:" $var done

5.3发送邮件代码
代码语言:javascript
复制
echo "$var 同学你好 [$endDateEmail] 今天你还没有完成"到梦空间"打卡,登录软件确认并完成打卡(如果完成打卡请忽略该邮件) 说明:此邮件将每天定时发送即大家提醒完成健康打卡" | mailx -s ["$endDateEmail]疫情健康打卡提醒" $var
5.4 测试

6.附件(完整代码)

代码语言:javascript
复制
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
endDateEmail=`date +"%Y.%m.%d"`
emailList=(
"2324671838@qq.com"
"xiaoandx@qq.com"
)
for var in ${emailList[@]}; do
echo "$var 同学你好 [$endDateEmail] 今天你还没有完成"到梦空间"打卡,登录软件确认并完成打卡(如果完成打卡请忽略该邮件) 说明:此邮件将每天定时发送即大家提醒完成健康打卡" | mailx -s ["$endDateEmail]疫情健康打卡提醒" $var
done
echo "$endDateEmail 提醒邮件发送成功"
endDate=`date +"%Y-%m-%d %H:%M:%S"`
echo "★[$endDate] Successful"
echo "----------------------------------------------------------------------------"

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179836.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linux发邮件shell脚本与群发邮件shell脚本
    • 1.Linux安装邮件服务
      • 2.配置发送邮件服务即你的邮箱
        • 3.生成安全证书
          • 4.邮件测试
            • 5.编写shell脚本
              • 6.附件(完整代码)
              相关产品与服务
              云服务器
              云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档