命令行搞一切之发送有附件的邮件

Posted Yujiaao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命令行搞一切之发送有附件的邮件相关的知识,希望对你有一定的参考价值。

发送有附件的邮件

不需要客户端,也不需要有自己的邮箱,当然,大概率会进垃圾桶,但如果是给自己偶尔备份一下文件,谁又在乎垃圾不垃圾呢。

TL;DR

Linux

 echo "有附件有温度的邮件" | mailx -s "这里是标题" -r www@qsn.so -a ./attachementfile.zip   yujiaao@msn.com

Mac OS

 uuencode ./mysecret_video.gz video.gz | mail -s "好看的小片片"    yujiaao@msn.com 

成为高级 Linux 用户的关键是多使用命令行,少使用 GUI;更多的键盘和更少的鼠标!随着 Linux 命令行工具的传播越来越多,使用命令行不仅可以执行管理任务,还可以执行一些非管理性的、实际上至关重要的日常任务。

在本文中,我们将学习如何在 Linux 中使用mail 命令发送带有文件附件的电子邮件。

先决条件

您必须已经在 Linux 机器中使用 SMTP 配置了您的电子邮件。这个电子邮件和服务器将被我们今天要学习的“邮件”程序使用。

在 Linux 中从命令行发送电子邮件
程序“邮件”可用于从命令行发送电子邮件以及带有电子邮件的文件附件。该程序默认不可用,可以使用以下命令安装在基于 Debian 和 Red Hat 的发行版中:

$ sudo apt install mailutils [在Debian/Ubuntu/Mint 上]
$ sudo dnf install mailx [在RedHat/CentOS/Fedora 上]

使用“mail”发送电子邮件的语法如下:

$ echo "电子邮件消息正文" | mail -s "邮件主题" target@domain.com

您可以看到我们正在使用echo 命令输出消息正文并将此输出重定向到“邮件”命令。这是因为\'mail\'命令从标准输入读取消息正文输入。

从命令行发送带有文件附件的电子邮件
同样,要使用mail附加文件,\'-A\'可以使用参数:

$ echo "电子邮件消息正文" | mail -s "邮件主题" target@domain.com -A <要附加的文件>

要将电子邮件发送给多个收件人,只需指定以逗号分隔的多个电子邮件 ID。

$ echo "电子邮件消息正文" | mail -s "邮件主题" target1@domain.com;target2@domain.com,target3@domain.com -A <要附加的文件>

要包含一个文本文件作为电子邮件的消息正文,而不是使用echo,您可以将文件的文本重定向到命令,如下所示:

$ mail -s "邮件主题" target@domain.com -A <要附加的文件> <mailtext.txt

结论

今天我们看到了一种从 Linux 命令行发送电子邮件和附件的方法。还有一些其他程序,如“ mutt ”和“ Sendmail ”,它们与“ mail ”类似,可以用于相同的目的。

以上是关于命令行搞一切之发送有附件的邮件的主要内容,如果未能解决你的问题,请参考以下文章

在php中发送带有多个附件的电子邮件

python之发送邮件----html + 附件

无法使用 CakePHP Mail 发送电子邮件附件 PDF

使用命令行和 sendmail 发送带有多个附件的电子邮件

在Linux命令行发送电子邮件附件的两种方法

重学Springboot系列之邮件发送的整合与使用