Ubuntu Mutt邮箱的配置与使用

2023-10-22 03:30
文章标签 配置 ubuntu 使用 邮箱 mutt

本文主要是介绍Ubuntu Mutt邮箱的配置与使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    Ubuntu实现邮件发送的方式有很多,最最简单的是就是开个网页,登录你的邮箱,实现邮件的收发。但是能否通过命令行来实现邮件的收发呢,完全可以,这里我比较推荐mutt和msmtp的组合来实现收发邮件。网上的教程很多,但是有几个关键点根本没有提及,导致当时我安装的欲哭无泪。

   msmtp是专门负责邮件发送的SMTP客户端软件,mutt是邮件用户代理客户端,由于是一个代理所以必须要用到你自己的邮箱(比如163,gmail,outlook,qq均可)。

           一定要注意:在使用mutt发送邮件之前,一定要保证你的邮箱开通了SMTP/POP3服务,允许使用第三方代理客户端!

   我以163邮箱为例,先进入你的163邮箱,在设置下面的POP3/SMTP/IMAP下设置POP3/SMTP服务

开启服务之后,163邮箱会让你设置授权码,一定要记住这个授权码,下面讲到的邮箱配置文件中的密码是这个授权码,而不是你登陆邮箱的密码!

    接着,开始下载mutt和msmtp这两个软件

    sudo apt-get install mutt

    sudo apt-get install msmtp

    安装好之后可以进行配置,我这里是在我的用户文件夹下面进行配置,而不是全局配置,大家可以根据自己偏好选择。

    vim ~/.muttrc  输入下面内容

    realname没有什么所谓,但是接下来有个用户名就有明确讲究啦

    接下来,新建msmtp的日志文件

    touch ~/.msmtp.log

    然后配置msmtp文件, vim ~/.msmtprc   输入下图内容

    由于密码是明文,所以修改文件的权限,只允许自己可以访问该文件

    chmod 600 ~/.msmtprc

大家一定要注意user和password一项,由于密码是之前的授权码,所以在配置之前一定要设置好邮箱!

    配置好之后可以输入“msmtp --host=smtp.163.com --serverinfo”命令,进行测试,输出以下结果


    然后就可以开始使用命令行发送邮件了!

     echo "hello world" | mutt -"title" 目标邮箱

     大家也可以在命令行中输入mutt,按照提示一步步发送邮件,还可以添加附件,功能很强大,但是期默认的文本编辑器是nano,大家可以百度一下用法,比较好用!


     其实大家可能会疑惑为什么有网页版邮箱不用,非要绕这么大一个弯去整个命令行邮箱,难道只是在装13吗?其实不是,命令行邮箱可以配合Linux系统(比如脚本语言)实现一些定时报警和邮箱提醒。

     比如借助Linux的at指令,实现定时发送邮件

     sudo  /etc/init.d/atd restart     启动at服务

     at now + 10 minutes              10分钟后执行服务

     echo "hello world" | mutt -"title" 目标邮箱      发送邮件

     也可以通过crontab循环执行,比如每年情人节给女朋友发邮件,每天给老板信箱发报告等等!

     另外我给出一个C语言程序,汉诺塔递归,但是当汉诺塔搬完的时候会给你发送一封邮件!

/*===================================================# Author:      Joker@HIT    NolanRobot@163.com# Filetype:    C source code# Environment: Linux & Ubuntu 14.04# Tool:        Vim & Gcc# Date:        Sat Aug 27 2016# Descprition: move the stuff in Hanoi by recursion =====================================================*/#include<stdio.h>
#include<stdlib.h>void move_stuff(FILE *, int, char, char, char);int main(void)
{int number;char tower1 = 'A', tower2 = 'B', tower3 = 'C';FILE *fp;fp = fopen("HANOI.txt", "w");if(fp==NULL){printf("Can't creat the HANOI.txt\n");exit(EXIT_FAILURE);}printf("Enter the number of stones that need move: ");scanf("%d", &number);move_stuff(fp, number, tower1, tower2, tower3);if(fclose(fp)!=0){printf("Error! Can't close the HANOI.txt\n");exit(EXIT_FAILURE);}system("mutt -s \"Hanoi\" 1019767179@qq.com < HANOI.txt");return 0;
}void move_stuff(FILE *fp, int number, char tower1, char tower2, char tower3)
{if(number==1)fprintf(fp, "move the stuff from %c to %c\n", tower1, tower2);else{move_stuff(fp, number-1, tower1, tower3, tower2);fprintf(fp, "move the stuff from %c to %c\n", tower1, tower2);move_stuff(fp, number-1, tower3, tower2, tower1);}return;
}

上述是给我的QQ邮箱发了一封邮件(我输入的汉诺塔层数为5)


内容较多,没有截完!主要利用了system()函数实现了linux环境下指令的调用!


如果大家有什么建议或建议,欢迎留言或邮箱交流!

这篇关于Ubuntu Mutt邮箱的配置与使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/258821

相关文章

Java Lambda表达式的使用详解

《JavaLambda表达式的使用详解》:本文主要介绍JavaLambda表达式的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言二、Lambda表达式概述1. 什么是Lambda表达式?三、Lambda表达式的语法规则1. 无参数的Lambda表

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

Spring @RequestMapping 注解及使用技巧详解

《Spring@RequestMapping注解及使用技巧详解》@RequestMapping是SpringMVC中定义请求映射规则的核心注解,用于将HTTP请求映射到Controller处理方法... 目录一、核心作用二、关键参数说明三、快捷组合注解四、动态路径参数(@PathVariable)五、匹配请

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接

springboot项目中使用JOSN解析库的方法

《springboot项目中使用JOSN解析库的方法》JSON,全程是JavaScriptObjectNotation,是一种轻量级的数据交换格式,本文给大家介绍springboot项目中使用JOSN... 目录一、jsON解析简介二、Spring Boot项目中使用JSON解析1、pom.XML文件引入依

Java中的record使用详解

《Java中的record使用详解》record是Java14引入的一种新语法(在Java16中成为正式功能),用于定义不可变的数据类,这篇文章给大家介绍Java中的record相关知识,感兴趣的朋友... 目录1. 什么是 record?2. 基本语法3. record 的核心特性4. 使用场景5. 自定

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”