linux mutt msmtp 命令行邮件

0x00 简介

mutt 是我在 15 年就在使用的一个邮件发送的客户端,一直比较稳定,所以一直沿用。
mutt 是搭配 msmtp 来使用。
Mutt 和 msmtp 是两个不同的程序,但它们可以一起使用来发送电子邮件。Mutt 是一个文本模式的电子邮件客户端,而 msmtp 是一个轻量级的 SMTP 客户端,用于将电子邮件发送到 SMTP 服务器。

下面是一个建议的流程图,展示了 Mutt 和 msmtp 之间的关系:

  +----------------+         +----------------+
  |                |         |                |
  |     Mutt       |         |     msmtp      |
  |                |         |                |
  +----------------+         +----------------+
          |                          |
          | 读取邮件                 |
          |------------------------>|
          |                          |
          | 准备发送邮件             |
          |------------------------>|
          |                          |
          | 将邮件发送到 msmtp       |
          |------------------------>|
          |                          |
          | msmtp 将邮件发送到 SMTP 服务器 |
          |------------------------>|
          |                          |
          | SMTP 服务器将邮件发送到收件人 |
          |<------------------------|
          |                          |
          | 更新邮件状态             |
          |<------------------------|
          |                          |

在这个流程图中,Mutt 读取邮件并准备发送邮件。然后,它将邮件发送到 msmtp。msmtp 将邮件发送到 SMTP 服务器,SMTP 服务器将邮件发送到收件人。最后,Mutt 更新邮件状态以反映邮件已发送。

0x01 配置

MUTT
系统全局设置/etc/Muttrc,如果使用某个系统用户,可以在~/.muttrc中设置。

vi .muttrc(最后加上)

set sendmail=”/usr/bin/msmtp”
set use_from=yes
set realname=”IvoWang” #(这个是名字)
set from=327@qq.com
set envelope_from=yes
set charset="UTF-8"
set send_charset="UTF-8"

MSMTP

创建~/.msmtprc 和 ~/.msmtp.log,分别为配置和日志文件。
vi .msmtprc

account default
host smtp.qq.com
port 465
from 327@qq.com
tls_starttls off
tls on
tls_certcheck off
auth login
user 327
password *******
#密码写QQ邮箱的授权码不是密码,授权码 
logfile ~/msmtp.log

关于授权码查看以下链接来设置如果,链接失效了 请自行搜索相关内容
https://service.mail.qq.com/detail/0/75

由于password是明码,所以我们需要修改此文件的权限。

chmod 600 .msmtprc
touch ~/.msmtp.log

查看SMTP服务器是否支持认证的TLS加密:

msmtp --host=smtp.qq.com --serverinfo
SMTP server at smtp.qq.com ([43.129.255.54]), port 25:
    newxmesmtplogicsvrsza1-0.qq.com XMail Esmtp QQ Mail Server.
Capabilities:
    SIZE 73400320:
        Maximum message size is 73400320 bytes = 70.00 MiB
    PIPELINING:
        Support for command grouping for faster transmission
    STARTTLS:
        Support for TLS encryption via the STARTTLS command
    AUTH:
        Supported authentication methods:
        PLAIN LOGIN XOAUTH2
This server might advertise more or other capabilities when TLS is active.

到这里,你可以使用mutt来发送邮件了,我们测试一下。

echo "This is a test email" | mutt -s "Test Email"  recipient@example.com -a /path/to/attachment

其中,各个参数的含义如下:

  • echo "This is a test email":邮件正文内容,使用echo命令输出。
  • -s "Test Email":邮件主题,使用-s参数指定。
  • -a /path/to/attachment:附件路径,使用-a参数指定,可以添加多个附件,多个附件之间用空格分隔。把 -a 附件的内容写在最后。
  • recipient@example.com:邮件接收者的地址,可以是单个地址,也可以是多个地址,多个地址之间用空格分隔。

这个命令会将邮件正文内容、主题、附件和接收者的地址一起打包成一封邮件发送出去。
记得把 locale 做成 utf-8 编码可以发送中饭不乱码
.bashrc的最后加上

export LANG=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8

然后 source .bashrc 生效即可

上一篇
下一篇