linux mail发邮件_python邮件发送

linux mail发邮件_python邮件发送linux安装mailx发邮件文章目录linux安装mailx发邮件原理安装配置qq的smtps服务器配置Peer的证书发布者为信任​ mail命令是Linux终端发送邮件用的最多的命令。mailx是mail命令的更新版本,基于BerkeleyMail8.1,意在提供POSIXmailx命令的功能,并支持MIME、IMAP、POP3、SMTP和S/MIME扩展。mailx在某些交互特性上更加强大,如缓冲邮件消息、垃圾邮件评分和过滤等。在Linux发行版上,mail

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

linux安装mailx发邮件

​ mail 命令是 Linux 终端发送邮件用的最多的命令。mailx 是 mail 命令的更新版本,基于 Berkeley Mail 8.1,意在提供 POSIX mailx 命令的功能,并支持 MIME、IMAP、POP3、SMTP 和 S/MIME 扩展。mailx 在某些交互特性上更加强大,如缓冲邮件消息、垃圾邮件评分和过滤等。在 Linux 发行版上,mail命令是 mailx 命令的软链接。可以运行下面的命令从官方发行版仓库安装 mail 命令。

​ 这里是:使用外部 smtp 服务器(qq邮箱)发送邮件。

​ mail是mailx的别名,mail是MUA,sendmail是MTA

​ 如果我们只是想要发送邮件 只需要mail 或者mailx 就可以了,如果我们需要发送邮件并且能收到对方的邮件 我们可能就需要sendmail 服务了。

原理

在这里插入图片描述

  • MUA:Mail User Agent,邮件用户代理,用来编写,收发邮件
  • MTA:Mail Transfer Agent,邮件传输代理,将邮件传输到正确目的地
  • MDA:Mail Delivery Agent,邮件分发代理,将邮件分发到正确目的用户

​ 以一个例子来说明上面的关系。假如A用户使用的是QQ邮箱,B用户使用的是163邮箱,A要向B发送一封邮件。流程如下:

1、A用户通过MUA编写好邮件,并发送
2、该邮件通过MTA,首先发送到QQ邮件服务器
3、QQ邮件服务器分析到目的邮箱地址是163,所以再通过MTA传送到163邮件服务器
4、163邮件服务器收到该邮件
5、由于使用163邮箱的用户有很多,再通过MDA把该邮件发送到正确的用户
6、B用户通过MUA就可以查看A用户发送的邮件。

安装

对于 Debian/Ubuntu 系统

apt-get install mailutils

对于 RHEL/CentOS 系统

yum install mailx

对于 Fedora 系统

dnf install mailx

配置qq的smtps服务器

vi /etc/mail.rc
# 在最后一行写入下面信息

# 这里填入smtp地址,这里的xxx为qq或者163
set smtp=smtps://smtp.qq.com:465
# 认证方式
set smtp-auth=login
# 这里输入邮箱账号
set smtp-auth-user=jenrey@foxmail.com
# 这里填入密码,这里是授权码而不是邮箱密码
set smtp-auth-password=xxxxxxxxxxxxxxx
# 忽略证书警告
set ssl-verify=ignore
# 证书所在目录
set nss-config-dir=/etc/pki/nssdb
# 设置发信人邮箱和昵称
set from=jenrey@foxmail.com

​ QQ邮箱的授权码获取方式为:进入邮箱后–>设置–>账户,开启下图1中的SMTP,点击2生成授权码

在这里插入图片描述

echo '邮件内容'| mail -s '邮件标题' jenrey@foxmail.com
echo '123'| mail -s 'qwe' jenrey@foxmail.com

配置Peer的证书发布者为信任

Error in certificate: Peer’s certificate issuer has been marked as not trust

报错的意思是 证书错误:Peer的证书发布者被标记为不被信任。

这是由于使用加密通信,但客户端不能确认证书是否真实。

但是邮件可以正常发送。

[root@765850a4dacb /]# echo '123'| mail -s 'qwe' jenrey@foxmail.com
[root@765850a4dacb /]# Error in certificate: Peer's certificate issuer has been marked as not trusted by the.

解决方法如下:

# 修改配置(/etc/mail.rc)
将 set ssl-verify=ignore 改成 set ssl-verify=strict

# 获取邮件服务器证书
echo -n "" | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/pki/nssdb/qq.crt

# 如果提示openssl: command not found,执行下面命令并再次“获取邮件服务器证书”
yum install openssl

# 将证书添加到受信任列表
certutil -A -n 'qq' -t "P,P,P" -d /etc/pki/nssdb -i /etc/pki/nssdb/qq.crt
# -A:表示添加
# -n:nickname,可以随意取,例如126或qq
# -t:表示受信任的标签,可取值是t/c/p三种或者其组合,
# -d:表示证书所在目录
# -i:指示证书文件的位置。
# 其它参数可以 man certutil 查看
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何在linux系统中设置静态ip地址

    如何在linux系统中设置静态ip地址

    2021年9月16日
  • 群体结构分析软件admixture安装及使用经验

    群体结构分析软件admixture安装及使用经验1.软件下载及安装admixture:使用conda进行软件安装condainstalladmixture2.VCF文件格式转换为bed格式文件(似乎admixture可以直接识别ped/map文件格式的输入文件)vcf文件转为ped文件:方法1:使用vcftools支持将vcf文件转换成plink对应的ped/map格式,如下vcftools–vcfinput.vcf–plink–outoutput方法2:plink支持直接读取vcf文件..

    2022年10月24日
  • 捷达vs5顶配配置_VS窗体教程

    捷达vs5顶配配置_VS窗体教程使用VSCode优雅的书写Python代码

    2022年10月23日
  • HDU1754_I Hate It(线段树/单点更新)

    HDU1754_I Hate It(线段树/单点更新)

    2022年1月21日
  • pycharm看不到运行结果_pycharm系统找不到路径

    pycharm看不到运行结果_pycharm系统找不到路径一、起因不知道什么原因,好像是在下载安装了Java8.jdk后吧,浏览器的下载文件夹似乎被洗劫了一下那两个不是幸存了,是重下回来了…二、问题出现这个图虽然不是我的,但问题类型是一样的截图来自另一位大佬的解决办法:​​​​​​pycharm无法运行?系统找不到指定的文件?解决办法及其中的一个小坑_unseven的博客-CSDN博客_pycharm运行找不到指定文件四、奇妙地解决右键开始窗口打开应用和功能,下滑找到程序和功能进一步找到python右…

    2022年8月27日
  • 什么的数据传送单位是报文_简述Mpls数据报文的转发过程

    什么的数据传送单位是报文_简述Mpls数据报文的转发过程http请求报文和响应报文前言http协议是一个应用层协议,其报文分为请求报文和响应报文当客户端请求一个网页时,会先通过http协议将请求的内容封装在http请求报文之中,服务器收到该请求报文后根据协议规范进行报文解析,然后向客户端返回响应报文。http报文结构为:起始行对报文进行描述头部向报文中添加了一些附加信息,是一个名/只的列表,头部和协议配合工作,共同决定了客户端和服务器…

    2022年10月30日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号