linux下使用mail定时发送邮件-阿里企业邮箱发送
一 背景介绍
文章需求:
编写脚本从数仓里提取数据,并将数据表格通过阿里企业邮箱发送给指定人员,这里主要讲下,使用mail命令发送邮件时遇到的一些坑。
个人公众号:放纵的Coder 有疑问请联系我
二 mail命令参数
linux系统中,默认自带有mail命令。
常用的命令参数如下:
-s <邮件主题>:指定邮件的主题;
-c <地址>:添加邮件抄送人,多个人时用逗号隔开
-b <地址>:添加邮件暗送人
-a <附件>: 添加附件
三 测试发送邮件
echo '数据部门' | mail -s '需求数据' -a celebrity_20020301.csv xxxxxxxxx@dingding.com
1.使用上面命令发送邮件,发现报错:
send-mail: fatal: parameter inet_interfaces: no local interface found for ::1
于是就疯狂的查找资料,根据其他作者的文章,做了以下修改:
# 进入到main.cf配置文件中 >>>vim /etc/postfix/main.cf发现配置为: inet_interfaces = localhost inet_protocols = all 改成: inet_interfaces = all inet_protocols = all# 重新启动 >>>service postfix start
修改完成后接着尝试发送邮件,执行完命令后没有报错,但是查看后发现接受者无法收到邮件。
悲剧发生的很突然,接着就继续去找相关文章,查询。
然后发现,这里需要使用的是mail外部邮箱发送邮件功能,需要在mail.rc文件中添加的相应的配置。
接着疯狂修改:
>>>vim /etc/mail.rc# 在文件的尾部添加如下设置 # 文章设置的发送者是钉钉邮箱 set from=123456@aliyun.com # 公司授权个人的阿里企业邮箱 set smtp=smtps://smtp.mxhichina.com:465 set smtp-auth-user=123456@aliyun.com set smtp-auth-password=***** set smtp-auth=login set ssl-verify=ignore #sslroot set nss-config-dir=/root/.certs #证书所在目录
配置完成后,会发现用到了证书目录,下面就继续生成证书:
# root下 执行以下命令 >>>mkdir .certs >>>echo -n | openssl s_client -connect smtp.mxhichina.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /root/.certs/ding.crt >>>certutil -A -n "GeoTrust SSL CA" -t "C,," -d /root/.certs -i /root/.certs/ding.crt >>>certutil -A -n "GeoTrust Global CA" -t "C,," -d /root/.certs -i /root/.certs/ding.crt >>>certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d /root/.certs/./ -i /root/.certs/ding.crt
结果输出:Notice: Trust flag u is set automatically if the private key is present. 成功
查看.certs下文件结构:
>>>ls /root/.certs/ cert8.db ding.crt key3.db secmod.db
到这里搞定,继续尝试发送邮件,依然是上面发送邮件的命令。
意外,太意外了,又失败了,结果报错:
Error initializing NSS: Unknown error -8015.
继续研究,不放弃,最后发现是权限问题,有点尴尬…
这里说下,实际工作中,我的服务器没有root权限,在读取配置文件证书所在目录的时候失败了。
解决方式:1.修改配置文件证书所在目录 2.修改生成证书文件的位置
更简单的方式:获取到root权限
四 总结
简单的mail命令,因为涉及到外部邮件发送和linux用户权限问题,走了一个又一个坑,希望看到这篇文字的同胞们,引以为戒,哈哈…
linux下使用mail定时发送邮件-阿里企业邮箱发送相关推荐
- Linux下使用mail命令发送邮件
因为需要经常备份网站的数据,所以了解并学习了下linux下如何通过shell来发送邮件,这里以CentOS为例,使用mail命令来进行外部邮件的发送.mail命令的语法如下: Usage: mail ...
- linux邮箱发文件夹,Linux下使用mail命令发送邮件
Linux服务器mail程序本身就是调用sendmail来进行邮件发送的,sendmail服务器提供对外的邮件发送功能.CentOS默认不能发送邮件,需要发送邮件的童鞋可以安装一个sendmail程序 ...
- python SMTP 发送邮件 阿里企业邮箱、163邮箱 及535错误
class SendEmail(object):def __init__(self, type, to_addr):self.to_addr = to_addrself.sys_date = time ...
- Java使用钉钉定时发送邮件到企业邮箱
相关步骤 配置发送邮件相关信息 # 邮件服务配置mail:host: smtp.qiye.aliyun.comport: 465username: 发送者对应的邮箱账号password: 发送者对应的 ...
- C#发送邮件(阿里企业邮箱示例 包括各个类型的服务器及端口配置)
本文讲解通过C#来实现发送邮件: 1.我这里是使用的阿里企业邮箱,至于其他的163和QQ邮箱,就是修改下服务器地址和端口的问题 2.至于发送失败的问题,在排除代码问题之后,可以看下自己使用的发送邮箱的 ...
- Linux下通过mail发送qq邮件出现连接超时的情况
Linux下通过mail发送qq邮件出现连接超时的情况 一.一般来说都是smtp的地址配置错误: 之前配置过的地址有: 1) set smtp=smtp.qq.com 2) set smtp=smtp ...
- 详解:阿里邮箱_阿里企业邮箱_阿里邮箱企业版
阿里邮箱是阿里云自主研发的,基于飞天平台自主研发的云原生分布式邮箱系统,阿里邮箱提供免费版.标准版.尊享版和集团版,企业邮箱版本不同支持的账号数也不同,共享网盘容量和个人网盘容量均不同,阿里云百科来详 ...
- 记一次confluence邮件服务器配置的坑(阿里企业邮箱)
公司想通过confluence自动发送邮件,项目经理搞了半天没搞定,公司服务器是阿里云服务器,有事就甩给我了,按照百度出来的方法试了下(可能大部分方式一,方式二就成功了,方式三可适用于阿里企业邮箱). ...
- 阿里企业邮箱:密码登录
阿里企业邮箱:密码登录 一.配置信息 企业邮箱POP.SMTP.IMAP地址列表如下: (阿里云邮箱web端通用访问地址:https://qiye.aliyun.com/),客户端推荐以下参数配置: ...
最新文章
- CentOS7上配置ELK
- jquery option 动态 selected
- matlab对一行矩阵fft,MATLAB?fft命令
- 知识图谱实体链接:一份“由浅入深”的综述
- 2015年度个人总结和计划
- TP5:异常处理封装——3
- linux qt yuv,c – 如何使用Qt中的RGBA32数据将带有YUV数据...
- java字节流分为_Java文件流可分为字节流和字符流。
- android开源2016_2016年十大开源项目
- SaltStack 使用 Jinja2 模板
- [网络流24题-9]试题库问题
- 第三章 Goroutine调度策略(16)
- 使用python编写聊天小程序
- 51单片机制作计算机1602显示,51单片机对LCD1602液晶显示器的控制
- 发票专用驱动sjz_【智能财税大讲堂】专用发票电子化的财税信息化变革
- 基于struts2 拦截器ResultType为chain的Action之间数据传递 ——表单页面打开优化
- 高德智慧交通地图空间可视化SDK设计与实现
- 笔记-项目干系人管理-识别干系人
- 1.17 设置工作簿的页眉和页脚 [原创Excel教程]
- 利用opencv给视频截图