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
生效即可