当前位置: 首页 > news >正文

Linux下配置邮箱客户端MUTT,整合msmtp + procmail + fetchmail

一、背景

        在向 Linux kernel 社区提交patch补丁步骤总结(已验证成功)_kernel补丁-CSDN博客文章中提到如何向kernel社区以及其他类似如qemu、libvirt社区提交patch的详细步骤,但还有一点不足的是通过git send-email这种方法基本是只能发送patch内容到社区maintainer,如果patch有问题需要后期继续和maintainer沟通,则会有很多不便,所以急切需要能在linux下也像windows端一样通过邮件客户端来收发邮件,这个linux下的邮箱软件就是mutt。

        关于mutt其实看过很多文章,但总感觉配置步骤描述的不太清晰,也总不成功,后来工作中也是在同事的帮助下最终得以配成。本文由于本身就是邮箱配置说明,为确保大家不疑惑所以很多地方我直接使用的邮箱明文,还请大家看之忘之,只为学习配置mutt即可。

        mutt可以看成是一个集成软件,具体介绍可查看参考链接,总之mutt可以通过整合其他软件来实现邮箱客户端功能,如发送邮件的msmtp,接收邮件的fetchmail以及过滤邮件的procmail。

        首先,请在windows下查阅自己邮箱的相关配置,一般图形化的软件都可以在设置中查看,比如我的如下图,可以看到关于收发使用的协议、服务器、以及端口号等。

同时要保证,自己的邮箱设置中要开启IMAP和POP转发:

二、配置步骤

1.首先,需要安装一系列rpm包,最好通过上述文章给出的几个rpm网站查找相应rpm包安装,实在找不到就只能自己源码安装,安装的rpm主要为mutt + msmtp + procmail + fetchmail,在安装这些包时会依赖于gnutls,openssl, libsasl等几个包,具体看机器。

2.安装mutt + msmtp + procmail + fetchmail后 一般只会在/etc/xxx下创建默认的配置文件,但我们不同用户在使用是~家目录下的配置文件,这些并不是自动创建的,所以需要我们手动创建配置文件。此处一次性给出四个软件的rc配置文件,具体功能后续再讲。

其中mutt配置文件(#cd ~, #vim .muttrc 手动创建,其余同样):

[root@localhost ~]# cat .muttrc
# General
set use_from=yes
set envelope_from=yes
set move=yes
set charset="utf-8"
set send_charset="utf-8"
auto_view text/html#useful
set include=yes            # 回信时包含原文
set indent_str="> "        # 回信的引文之前插入符号 >
set check_new=yes              # 查是否有新邮件
set mail_check=60              # 每 60 分钟查一次
set timeout=15
set sort=reverse-date-received            # 邮件按日期由近及远排列
set pager_index_lines=10                  # 看信时,在 index 留出多少行显示邮件列表# Account
set realname="JianChunfu"      #你的名字
set from="XXXXX@shingroup.cn"  #你的邮箱# Mail
set mbox_type = Maildir             #Mail box type
set folder = "$HOME/Mail"
set spoolfile = "$HOME/Mail/inbox"  #INBOX
set mbox="$HOME/Mail/seen"          #Seen box
set record="$HOME/Mail/sent"        #Sent box
set postponed="$HOME/Mail/draft"    #Draft box# Programs
set editor="vim"
set sendmail="/usr/bin/msmtp"  #借助msmtp实现发送,所以这个需要和msmtp的位置保持一致
[root@localhost ~]#

配置发送邮件的.msmtprc

[root@localhost ~]# cat .msmtprc
defaults
logfile /var/log/msmtp.logaccount jcf    #添加一个自己的账户,以下配置均属于该账户
auth login
host smtp.exmail.qq.com        #发件服务器
port 465
#protocol smtp
from xxxx@shingroup.cn        #邮箱账户
#user JianChunfu        /*此处按理说可以随意配置姓名,但实测时只有配置成邮箱用户名才发送成功*/
user xxxx@shingroup.cn        #邮箱用户名
password XXXXXXXXXX           #邮箱密码tls on
tls_starttls off
tls_certcheck off
tls_force_sslv3 offaccount default: jcf        #将jcf账户设置成默认发件用户

配置收件的.fetchmailrc和.procmailrc

[root@localhost ~]# cat .fetchmailrc
#set daemon 60
#defaults
poll imap.exmail.qq.com    #收件服务器#protocol IMAPprotocol POP3       #实测发现只有POP协议可以发送#port 993user "XXXXXXX@shingroup.cn"    #发件邮箱password "XXXXXXX"             #发件密码
mimedecode
mda "/usr/bin/procmail -d %T"        #使用procmail
[root@localhost ~]#
[root@localhost ~]# cat .procmailrc
MAILDIR=$HOME/Mail        #邮件存放总目录
DEFAULT=$MAILDIR/inbox
VERBOSE=off
LOGFILE=/tmp/procmaillog:0:
inbox/
[root@localhost ~]#

3.配置字段的具体含义,最主要的均已注释,若想每个字段的含义可见参考链接(比如解决中文乱码),由于配置字段非常繁多,所以要想理解每一个字段的含义只能去看手册。

另外,配置中用到的目录如~/Mail/xxx以及存放log的/var/log/msmtp.log等文件均需手动创建,是的,就是这么的不智能。反正我的机器上安装rpm后都没自动配置。

三、测试及问题解决

其实按标准步骤来,应该是先安装msmtp和mutt,之后先测试发送,发送没问题了再安装fetchmail和procmail并配置好,最终测试接收。

1.测试msmtp发送

命令行如下,二者任选(第一个是发送给163邮箱测试,第二个是自己发自己测试):

echo “TEST测试test” | mutt -s “DT_ZABBIX_SERVER_TEST”     xxxx@163.com

echo -e "Subject: Test Mail\r\n\r\nThis is a test mail" | msmtp --debug --from=xxx@shingroup.cn -t xxx@shingroup.cn

其实在这一步我一直报错授权失败,怎么也找不到原因,最后参考别人的文章试着将.msmtprc配置文件中的user 从随意指定的名字 改成 邮箱名,最后发成功了。

在windows查看自己的163邮箱,发现收到了邮件。

2. 测试收件

一开始可以先用mutt查看下自己的linux下的邮箱客户端,直接输入mutt命令即可:

一开始应该是完全空白的。在mutt界面其实也有很多指令。如可以按?来得到命令提示,按m开始撰写并发送,G是手动收信,按r是回信,g是reply all等。

然后直接在windows下使用163邮箱发送一封邮件给linux下配置的邮箱xxxx@shingroup.cn,此时回到linux下的mutt界面,直接按G来手动接收信件。(由于我还没有配置mutt自动收件,所以此时会报错POP host is not defined.,后期补充)

此时我们在linux下先借助fetchmail来收取信件,同样地直接在命令行输入fecthmail即可。

此时查看家目录的Mail目录,发现会多很多文件,那就是一封封邮件了。具体一次性收取多少都可以自行配置。

此时在重新进入mutt界面就发现终于有邮件了,而且可以找到我们在163邮箱发的那一封。

此时就可以通过mutt针对每一封邮件进行回复等操作了,mutt操作邮件的命令可以通过?查看,进入到邮件本身的文本界面后就是vim那一套指令操作。

四、参考链接

Mutt 使用指南

The Mutt E-Mail Client

Linux部署msmtp+mutt发送邮件功能-腾讯云开发者社区-腾讯云

傻瓜式配置mutt-腾讯云开发者社区-腾讯云

配置mutt_51CTO博客_mutt

相关文章:

Linux下配置邮箱客户端MUTT,整合msmtp + procmail + fetchmail

一、背景 在向 Linux kernel 社区提交patch补丁步骤总结(已验证成功)_kernel补丁-CSDN博客文章中提到如何向kernel社区以及其他类似如qemu、libvirt社区提交patch的详细步骤,但还有一点不足的是通过git send-email这种方法基本是只能发送patc…...

[每周一更]-(第75期):Go相关粗浅的防破解方案

Go作为编译语言,天然存在跨平台的属性,我们在编译完成后,可以再不暴露源代码的情况下,运行在对应的平台中,但是 还是架不住有逆向工程师的反编译、反汇编的情形;(当然我们写的都不希望被别人偷了…...

停留时间是您需要跟踪的 SEO 指标

介绍 停留时间是指用户在点击搜索引擎结果后但在返回搜索引擎结果页面之前在网站上花费的时间。它是搜索引擎优化 (SEO) 的一个重要指标,因为它衡量用户参与度并指示网站是否向访问者提供有价值且相关的内容。搜索引擎,如谷歌&am…...

ES常用操作语句

ES常用操作语句 注:本文中的操作语句基于ES5.5和7.7的版本,版本不同操作语句上可能有细微差别,如5.5版本有索引类型,7.7版本已废弃,查询不应该带索引类型 新增 # 添加字段,并设置字段类型 PUT /索引/_map…...

MicroPython STM32F4 RTC功能使用介绍

MicroPython STM32F4 RTC功能使用介绍 🔖STM32和ESP32 RTC功能差不多,相关篇《MicroPython ESP32 RTC功能使用介绍》📌固件刷可参考前面一篇《STM32刷Micropython固件参考指南》🌿 相关篇《Micropython STM32F4入门点灯》&#x1…...

【鸿蒙应用ArkTS开发系列】- 选择图片、文件和拍照功能实现

文章目录 前言创建多媒体Demo工程创建MediaBean 实体类创建MediaHelper工具类API标记弃用问题动态申请多媒体访问权限实现选择图片显示功能打包测试 前言 在使用App的时候,我们经常会在一些社交软件中聊天时发一些图片或者文件之类的多媒体文件,那在鸿蒙…...

公有云迁移研究——AWS Route53

大纲 1 什么是Route 532 Route 53能做些什么# 3 通过DNS托管来实现分流3.1 创建DNS托管3.2 对托管创建记录对流量进行分配 4 通过流量策略来对流量进行分流4.1 创建流量策略 5 对比两者的区别6 推荐 在给客户从本地机房往AWS迁移的过程中,我们接到如下需求&#xff…...

浪潮信息KeyarchOS——保卫数字未来的安全防御利器

浪潮信息KeyarchOS——保卫数字未来的安全防御利器 前言 众所周知,目前流行的操作系统有10余种,每一款操作系统都有自己的特点。作为使用者,我们该如何选择操作系统。如果你偏重操作系统的安全可信和稳定高效,我推荐你使用浪潮信…...

python-单词本|通讯录

编写程序,生词本。 def sayHello():print("" * 20 \n 欢迎使用生词本\n 1.查看生词本\n 2.背单词\n 3.添加新单词\n 4.删除单词\n 5.清空生词本\n 6.退出生词本\n * 20 \n)def addW(data):word input("请输入新单词:")trans i…...

oracle impdp 导入元数据表空间异常增大的解决办法

expdp导出的时候指定了contentsmetadata_only只导出元数据,但是在impdp导入到新库的时候,发现新库的表空间增长非常大,其实这个直接就可以想到,应该是大表的initial segment过大导致的 正常impdp,在执行创建表和索引的…...

网站高可用架构设计基础

一、网站高可用概述 不要尝试着去避免故障,而是要把处理故障的代码当成正常的功能做在架构里写在代码里。 高可用是一种面向风险设计,使系统具备控制风险,提供更高的可用性的能力。网站页面能完整呈现在最终用户面前,需要经历很多…...

基础堆溢出原理与DWORD SHOOT实现

堆介绍 堆的数据结构与管理策略 程序员在使用堆时只需要做三件事情:申请一定大小的内存,使用内存,释放内存。 对于堆管理系统来说,响应程序的内存使用申请就意味着要在"杂乱"的堆区中"辨别"出哪些内存是正在…...

ts的一些

以js为基础构建的语言 一个js的超集 引入了类型(type)的概念给变量赋予类型:让从动态类型语言(js)变成静态类型语言(ts) 让变量的类型明确 扩展了js 可以在任何支持js的平台中执行 比js复杂 可维护性更高 ts不能被js解析器执行 不能再浏览器中直接执行 ts会被编译为…...

LORA概述: 大语言模型的低阶适应

LORA概述: 大语言模型的低阶适应 LORA: 大语言模型的低阶适应前言摘要论文十问实验RoBERTaDeBERTaGPT-2GPT-3 结论代码调用 LORA: 大语言模型的低阶适应 前言 LoRA的核心思想在于优化预训练语言模型的微调过程,通过有效地处理权重矩阵的变化(即梯度更新…...

关于在PyTorch中使用cudnn.benchmark= True

关于在PyTorch中使用cudnn.benchmark True 在PyTorch中,cudnn.benchmark True是一个参数,用于启用或禁用cuDNN的基准测试模式。cuDNN是一个由NVIDIA开发的深度神经网络库,它为GPU提供了一个优化的计算接口。 基准测试模式是cuDNN的一个特性…...

re:Invent大会,亚马逊云科技为用户提供端到端的AI服务

11月末,若是你降落在拉斯维加斯麦卡伦国际机场,或许会在大厅里看到一排排AI企业和云厂商相关的夸张标语。走向出口的路上,你的身边会不断穿梭过穿着印有“AI21Lab”“Anthropic”等字样的AI企业员工。或许,你还会被机场工作人员主…...

23、什么是卷积的 Feature Map?

这一节介绍一个概念,什么是卷积的 Feature Map? Feature Map, 中文称为特征图,卷积的 Feature Map 指的是在卷积神经网络(CNN)中,通过卷积这一操作从输入图像中提取的特征图。 上一节用示意动图介绍了卷积算…...

安装获取mongodb

目录 本地安装 获取云上资源 获取Atlas免费数据库 本地连接数据库 在Atlas中连接数据库 本文适合初学者或mongodb感兴趣的同学来准备学习测试环境,或本地临时开发环境。mongodb是一个对用户非常友好的数据库。这种友好,不仅仅体现在灵活的数据结构和…...

【模电】基本共射放大电路的工作原理及波形分析

基本共射放大电路的工作原理及波形分析 在上图所示的基本放大电路中,静态时的 I B Q I\tiny BQ IBQ、 I C Q I\tiny CQ ICQ、 U C E Q U\tiny CEQ UCEQ如下图( b )、( c )中虚线所标注。 ( a ) u i 的波形( b ) i B …...

Oracle:左连接、右连接、全外连接、(+)号详解

目录 Oracle 左连接、右连接、全外连接、()号详解 1、左外连接(LEFT OUTER JOIN/ LEFT JOIN) 2、右外连接(RIGHT OUTER JOIN/RIGHT JOIN) 3、全外连接(FULL OUTER JOIN/FULL JOIN&#xff0…...

virtualbox上win7企业微信CPU高问题

问题 linux Opensuse上的Virtualbox安装有win7, win7中跑企业微信CPU占用很高。一杀掉它,CPU占用就立马降下来了。 定位 当cpu占用高时,打开任务管理器,可以定位到svhost.exe占用很高, 优化 右键点击计算机–管理–服务和应用…...

【华为OD题库-055】金字塔/微商-java

题目 微商模式比较典型,下级每赚100元就要上交15元,给出每个级别的收入,求出金字塔尖上的人收入。 输入描述 第一行输入N,表示有N个代理商上下级关系 接下来输入N行,每行三个数:代理商代号 上级代理商代号 代理商赚的钱…...

OpenVINO异步Stable Diffusion推理优化方案

文章目录 Stable Diffusion 推理优化背景技术讲解:异步优化方案思路:异步推理优化原理OpenVINO异步推理Python API同步和异步实现方式对比 oneflow分布式调度优化优势:实现思路 总结: Stable Diffusion 推理优化 背景 2022年&…...

51单片机的智能加湿器控制系统【含proteus仿真+程序+报告+原理图】

1、主要功能 该系统由AT89C51单片机LCD1602显示模块DHT11湿度传感器模块继电器等模块构成。主要适用于智能自动加湿器、湿度保持、湿度控制等相似项目。 可实现基本功能: 1、LCD1602液晶屏实时显示湿度信息 2、DHT11采集湿度 3、按键可以调节适宜人体湿度的阈值范围&#xff0…...

NoSql非关系型数据库

前言:Nosql not only sql,意即“不仅仅是sql”,泛指非关系型数据库。这些类型的数据存储不需要固定的模式(当然也有固定的模式),无需多余的操作就可以横向扩展。NoSql数据库中的数据是使用聚合模型来进行处…...

抖音集团面试挂在2面,复盘后,决定二战.....

先说下我基本情况,本科不是计算机专业,现在是学通信,然后做图像处理,可能面试官看我不是科班出身没有问太多计算机相关的问题,因为第一次找工作,字节的游戏专场又是最早开始的,就投递了&#xf…...

每个.NET开发都应掌握的C#处理文件系统I/O知识点

上篇文章讲述了C#多线程知识点,本文将介绍C#处理文件的知识点。在.NET开发领域,文件系统I/O是一个至关重要的主题,尤其是在处理文件、目录和数据存储方面。C#作为.NET平台的主要编程语言,提供了丰富而强大的文件系统I/O功能&#…...

vue3 中使用 sse 最佳实践,封装工具

工具 // 接受参数 export interface SSEChatParams {url: string,// sse 连接onmessage: (event: MessageEvent) > void,// 处理消息的函数onopen: () > void,// 建立连接触发的事件finallyHandler: () > void,// 相当于 try_finally 中的 finally 部分,不…...

OpenCV快速入门【完结】:总目录——初窥计算机视觉

文章目录 前言目录1. OpenCV快速入门:初探2. OpenCV快速入门:像素操作和图像变换3. OpenCV快速入门:绘制图形、图像金字塔和感兴趣区域4. OpenCV快速入门:图像滤波与边缘检测5. OpenCV快速入门:图像形态学操作6. OpenC…...

车企数据治理实践案例,实现数据生产、消费的闭环链路 | 数字化标杆

随着业务飞速发展,某汽车制造企业业务系统数量、复杂度和数据量都在呈几何级数的上涨,这就对于企业IT能力和IT架构模式的要求越来越高。加之企业大力发展数字化营销、新能源车等业务,希望通过持续优化客户体验,创造可持续发展的数…...

网站建立平台 cms/by网站域名

地理数据的坐标主要分为两种方式:地理坐标和投影坐标。地理坐标是球面坐标,简单来说就是使用经纬度来表示位置坐标,投影是按照一定的数学模型将球面坐标投影到几何体后,用平面坐标(x和y)来表示位置信息。工作中我们经常会用到地理…...

大连建网站策划/网课免费平台

概述 PowerJob是新一代分布式任务调度与计算框架,支持CRON、API、固定频率、固定延迟等调度策略,提供工作流来编排任务解决依赖关系,能让您轻松完成作业的调度与繁杂任务的分布式计算。 为什么选择PowerJob? 当前市面上流行的作…...

wordpress 分类信息模板/中国新冠疫苗接种率

【出版商】贝哲斯咨询 【免费目录下载】隧道掘进机(TBM)是一种用于通过各种土壤和岩石地层开挖具有圆形横截面的隧道的机器。这些机器用于建筑微型隧道,以及用于公路,铁路,水处理系统和管道的隧道。 隧道掘进机&…...

重庆小潘seo/公司seo是什么意思

安德森的那本《免费,商业的未来》,和《长尾理论》一样,在国内互联网领域,掀起了巨大波澜。他的这一理论之所以得到广泛认同,是因为免费模式,在中国互联网领域,有过超级成功的先例。最著名的事件…...

wordpress位置/营销软文是什么

NEW关注Tech逆向思维视频号最新视频→【做核酸?打疫苗?3分钟假期安全出行攻略】出品|刺猬公社文| 张展编辑 | 石灿星星点灯,照亮前程。在咖啡的舞台上,我们习惯把目光聚焦于那些咖啡明星——门店总数突破53…...

wordpress页面重定向循环/一份完整的市场调查方案

Web应用安全依然是互联网安全的最大威胁来源之一,除了传统的网页和APP,API和各种小程序也作为新的流量入口快速崛起,更多的流量入口和更易用的调用方式在提高web应用开发效率的同时也带来了更多和更复杂的安全问题。一方面,传统的…...