发送有附件的邮件
不需要客户端,也不需要有自己的邮箱,当然,大概率会进垃圾桶,但如果是给自己偶尔备份一下文件,谁又在乎垃圾不垃圾呢。
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 ”类似,可以用于相同的目的。