有时候会使用脚本完成一系列的自动化工作,工作完成后还需要邮件通知相关人员,此时可以使用第三方的工具:SendEmail,最新版本sendEmail-v1.56.tar.gz

下载地址:http://caspian.dotconf.net/menu/Software/SendEmail/

sendEmil的使用范例:

#!/bin/bash

email_reciver="oneway@163.com lin@126.com"

#发送者邮箱

email_sender=373850874@qq.com

#邮箱用户名

email_username=373850874

#邮箱密码

#使用qq邮箱进行发送需要注意:首先需要开启:POP3/SMTP服务,其次发送邮件的密码需要使用在开启POP3/SMTP服务时候腾讯提供的第三方客户端登陆码。

email_password=mialbjhzsmuobigf

file1_path="附件一路径"

file2_path="附件二路径"

#smtp服务器地址

email_smtphost=smtp.qq.com

email_title="iOS客户端更新"

email_content="谢谢!"

./sendEmail -f ${email_sender} -t ${email_reciver} -s ${email_smtphost} -u ${email_title} -xu ${email_username} -xp ${email_password} -m ${email_content} -a ${file1_path} ${file2_path} -o message-charset=utf-8

问题 1

要使用脚本发送邮件,必须设置发送邮箱开启IMAP/SMTP服务。否则将会报错。

IMAP,即Internet Message Access Protocol(互联网邮件访问协议),您可以通过这种协议从邮件服务器上获取邮件的信息、下载邮件等。IMAP与POP类似,都是一种邮件获取协议。

IMAP和POP有什么区别?

POP允许电子邮件客户端下载服务器上的邮件,但是您在电子邮件客户端的操作(如:移动邮件、标记已读等),这是不会反馈到服务器上的,比如:您通过电子邮件客户端收取了QQ邮箱中的3封邮件并移动到了其他文件夹,这些移动动作是不会反馈到服务器上的,也就是说,QQ邮箱服务器上的这些邮件是没有同时被移动的 。但是IMAP就不同了,电子邮件客户端的操作都会反馈到服务器上,您对邮件进行的操作(如:移动邮件、标记已读等),服务器上的邮件也会做相应的动作。也就是说,IMAP是“双向”的。

同时,IMAP可以只下载邮件的主题,只有当您真正需要的时候,才会下载邮件的所有内容。

问题 2

我使用的系统是Mac OSX EI Capitan, 运行命令时报错如下:

MaxOS: invalid SSL_version specified at /System/Library/Perl/Extras

/5.18/IO/Socket/SSL.pm line 368.

解决方案:

打开文件: /usr/share/perl5/IO/Socket/SSL.pm

找到: m{^(!?)(?:(SSL(?:v2|v3|v23|v2/3))|(TLSv1(?:_?[12])?))$}i

替换为:m{^(!?)(?:(SSL(?:v2|v3|v23|v2/3))|(TLSv1[12]?))}i

可是接下来的问题又出现了,当你修改完成后却无法保存,被告知权限不够,可是你明明使用的是sudo,超级管理员权限。

这是由于 OSX EI Capitan之后苹果采用了“Rootless”技术来保护系统内核,用户将没有权限操作系统文件。但是不要紧

苹果并没有把路封死。

执行以下命令:

% dsenableroot

username = wangwei

user password:

root password:

verify root password:

dsenableroot:: ***Successfully enabled root user.

命令执行后可以使sudo 获取正真的Root用户权限。sudo root用户的密码就是你刚刚设置的密码。

如果你希望自己的账户拥有root权限,那么你也可以通过添加 -U 参数来达到这一目的:

dsenableroot -u wangwei

#其中wangwei为你的用户名

此时你就可以更改/usr/share/perl5/IO/Socket/SSL.pm了。

关于root权限问题,苹果既然使用了Rootless技术来保护内核虽然给我们造成了一些麻烦,但是一定是有他的道理的,比如更加安全,防止了误操作等。

所以我们获取到最高权限后,最好再取消Root权限

取消用户的Root权限

取消用户Root权限只需要在命令后加参数:-d (disable)

% dsenableroot -d

username = wangwei (或者是root)

user password:

dsenableroot:: ***Successfully disabled root user.

取消特定用户的Root权限:

dsenableroot -d -u wangwei

关闭“Rootless”

sudo nvram boot-args="rootless=0"; sudo reboot

文章参考

linux 脚本 发送邮件,shell 脚本发送邮件相关推荐

  1. Linux论文基于shell脚本

    CSDN下载:https://download.csdn.net/download/eseszb/10503223 Linux下基于shell脚本的流量监控报警系统设计与实现 摘要:随着云计算的到来, ...

  2. Linux中执行shell脚本的4种方法

    这篇文章主要介绍了Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法,需要的朋友可以参考下. bash shell 脚本的方法有多种,现在作个小结.假设我们编写 ...

  3. Linux下的shell脚本实战之用户创建

    Linux下的shell脚本实战之用户创建 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 二.脚本内容 三.运行脚本 一.脚本要求 1.该脚本提示用户创建用户名和密码 2.判断输入的用户名是 ...

  4. Linux 中启用 Shell 脚本的调试模式

    shell 脚本调试系列 Linux 中启用 Shell 脚本的调试模式 在 Shell 脚本中执行语法检查调试模式 在 Shell 脚本中跟踪调试命令的执行 概述 脚本是存储在一个文件的一系列命令. ...

  5. 如何在 Linux 中启用 Shell 脚本的调试模式

    脚本是存储在一个文件的一系列命令.在终端上输入一个个命令,按顺序执行的方法太弱了,使用脚本,系统中的用户可以在一个文件中存储所有命令,反复调用该文件多次重新执行命令. 在学习脚本或写脚本的初期阶段,我 ...

  6. linux下执行shell脚本文件,Linux下使用shell脚本自动执行脚本文件

    搜索热词 以下实例本人在Centos6.5 64位操作系统中使用 一.定时复制文件 a.在/usr/local/wfjb_web_back目录下创建 tomcatBack.sh文件 #将tomcat中 ...

  7. Linux 定时执行shell 脚本

    2019年第 85 篇文章,总第 109 篇文章 本文大约2000字,阅读大约需要6分钟 crontab 可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令. 定时执行shell ...

  8. linux 定时执行搅拌,Linux上定时shell脚本

    本文主要介绍在Linux系统上部署定时器,定时执行shell脚本,通过脚本执行sql文件 sql文件 -- 创建表 create table if not exists iot_test.iot_ta ...

  9. linux脚本是什么语言,Linux学习之Shell脚本语言的优势是什么?

    当我们学习Linux技术的时候,会涉及各种各样的知识和内容,比如说shell脚本语言,我想很多人都会疑惑shell脚本语言有什么优势?为何学习Linux的时候必须学习呢?我们来看看吧. 当命令和程序语 ...

  10. Linux中执行shell脚本的5种方法总结

    Linux中执行shell脚本的4种方法总结,即在Linux中运行shell脚本的4种方法: 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 复制代码 代码如下: c ...

最新文章

  1. Pandas/networkx图分析简单入门
  2. ERROR: ORA-01033: ORACLE initialization or shutdown in progress Oracle无法启动的解决
  3. oracle 数据库运维技术,Oracle数据库智能运维标准化工艺研究-orastar-DIY数据库运维工具-第1期 导论篇...
  4. php 显示中文utf,php adodb 从mysql数据库中输出中文显示到utf编码网页乱码问题
  5. HTML图形映射技术
  6. AcWing 786. 第k个数
  7. JS键盘KEYCODE值参考
  8. Sql Server2005安装图解
  9. 自定义tableView的section header/footerView时的view复用问题
  10. 如何让你的Android SDK下载或者升级快如闪电
  11. 据我爱无人机网-英国政府向无人机研发项目提供3000万资助
  12. 智慧泵房泵站无线远程监控检测系统方案
  13. 手机关闭浏览器html,如何解除手机浏览器网页限制?
  14. 定义并实现一个银行类
  15. Python实用技巧 使用pillow库批量修改文件夹下所有PNG图片透明度
  16. 2015-2023年全球医疗器械公司100强(附细分领域排行)
  17. uni-app tababr“+”突起按钮触发弹窗解决方案
  18. 陌生男女社交软件交流手册
  19. Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.1.1:generate
  20. 自学python(2):利用opencv实现读图,显示,画框,裁剪的python代码

热门文章

  1. php 模板解析,关于模板的原理和解析
  2. 职称计算机Word2003是考什么,2017年职称计算机考试word2003考点
  3. RuoYi-Cloud [网关异常处理]请求路径:/code,异常信息:null
  4. Docker启动Mysql容器失败,挂载时权限不足,chown: changing ownership of ‘/var/lib/mysql/‘: Permission denied
  5. 基于SpringBoot+Vue开发的前后端分离博客项目-Java后端接口开发
  6. SecureCRT 文件下载上传
  7. 远程GitHub中的项目拉取到本地
  8. 一个服务器上放多个网站,一个云服务器放多个网站吗
  9. yum安装mysql5.7 简书_阿里云服务器(centos7.3)上安装jdk、tomcat、mysql、redis
  10. 斯皮尔 皮尔森 肯德尔_一起来学应用统计学(全部)(二)持续更新