Linux提供了几个命令,允许您通过终端发送电子邮件。这里有一些有趣的方法。
-桑德拉·亨利-斯托克(作者)
Linux可以通过多种方式通过命令行发送电子邮件。有些方法非常简单,而其他方法相对复杂,但它们仍然提供了许多有用的功能。选择哪种方式取决于你想要什么——是向同事发送快速消息,还是向一群人发送带有附件的更复杂的消息。接下来,让我们看看几种可能的解决方案:
mail发送简单消息最方便的Linux命令是邮件。假设你需要提醒老板你今天要早走,你可以用这个命令:
$ echo Reminder: Leaving at 4 PM today | mail -s early departure myboss另一种方法是从文件中提取您想要发送的文本信息:
$ mail -s Reminder:Leaving early myboss reason4leaving在这两种情况下,您都可以使用-s为电子邮件添加标题。
sendmail使用sendmail命令发送不带标题的快递信件。(用预期收件人替换recip):
$ echo leaving now | sendmail recip您可以使用此命令发送只有标题没有内容的消息:
$ echo Subject: leaving now | sendmail recip您也可以通过sendmail发送带有标题行的完整邮件。但是,使用此方法时,标题行将被添加到要发送的文件中,如下例所示:
Subject: Requested lyricsI would just like to say that, in my opinion, longer hair and other flamboyantaffectations of appearance are nothing more ...您也可以发送这样的文件(歌词文件包含标题和正文):
$ sendmail recip lyricssendmain的输出也可能很长。如果你很好奇,想看看发送系统和接收系统之间的交互,请添加-v (verbose)选项。
$ sendmail -v recip@emailsite.com lyricsmuttMutt是一个很好的从命令行发送邮件的工具,使用之前需要安装。mutt的一个方便的优点是它允许你在电子邮件中添加附件。
使用mutt发送快速消息:
$ echo Please check last night s backups | mutt -s backup check recip从文件中获取内容:
$ mutt -s Agenda recip agenda使用-a选项向mutt添加附件。您甚至可以添加多个附件,如下一个命令所示:
$ mutt -s Agenda recip -a agenda -a speakers msg在上面的命令中,msg文件包含邮件的正文。如果没有其他要添加的内容,可以用以下命令替换前面的命令:
$ echo | mutt -s Agenda recip -a agenda -a speakersmutt的另一个有用的功能是可以添加CC (-c)和Bcc (-b)。
$ mutt -s Minutes from last meeting recip@somesite.com -c myboss minstelnet如果你想更多地了解发送电子邮件,你可以使用telnet与电子邮件进行交互。但正如我所说,你需要“学习术语”。邮件服务器需要一系列命令,包括自我介绍(EHLO命令)、提供发件人(邮件发件人命令)、指定收件人(RCPT收件人命令),然后添加邮件(数据)并以结尾。并非所有电子邮件服务器都会响应这些请求。这种方法通常仅用于故障排除。
$ telnet emailsite.org 25Trying 192.168.0.12...Connected to emailsite.Escape character is ^] .220 localhost ESMTP Sendmail 8.15.2/8.15.2/Debian-12; Wed, 12 Jun 2019 16:32:13 -0400; (No UCE/UBE) logging access from: mysite(OK)-mysite [192.168.0.12]EHLO mysite.org == introduce yourself250-localhost Hello mysite [127.0.0.1], pleased to meet you250-ENHANCEDSTATUSCODES250-PIPELINING250-EXPN250-VERB250-8BITMIME250-SIZE250-DSN250-ETRN250-AUTH DIGEST-MD5 CRAM-MD5250-DELIVERBY250 HELPMAIL FROM: me@mysite.org == 指定发件人250 2.1.0 shs@mysite.org... Sender okRCPT TO: recip == 指定收件人250 2.1.5 recip... Recipient okDATA == 邮件内容开始354 Enter mail, end with . on a line by itselfThis is a test message. Please deliver it for me.. == 内容结束250 2.0.0 x5CKWDds029287 Message accepted for deliveryquit == 结束交互向多个收件人发送电子邮件如果您想通过Linux命令行向一大群收件人发送电子邮件,可以使用循环来帮助您完成任务,如下面在mutt中应用的示例所示:
$ for recip in `cat recips` mutt -s Minutes from May meeting $recip May_minutesdone总结从Linux命令行发送电子邮件有很多方法。一些工具提供了很多选择。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@xxxxxxxx@hotmail.com 举报,一经查实,立刻删除。