知乐空间

如何用 Linux 命令行发电子邮件(如何发邮件)

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   lyrics

sendmain的输出也可能很长。如果你很好奇,想看看发送系统和接收系统之间的交互,请添加-v (verbose)选项。

$ sendmail -v recip@emailsite.com   lyricsmutt

Mutt是一个很好的从命令行发送邮件的工具,使用之前需要安装。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 speakers

mutt的另一个有用的功能是可以添加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 举报,一经查实,立刻删除。

留言与评论(共有 0 条评论)
验证码: