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


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

文章插图


Linux提供了几个命令,允许你通过终端发送电子邮件 。以下是一些有趣的展示方式 。
-桑德拉·亨利·斯托克(作者)
Linux可以通过命令行以多种方式发送电子邮件 。有些方法非常简单,有些方法相对复杂,但它们仍然提供了许多有用的功能 。你选择哪种方法取决于你想要什么——快速地向同事发送信息,还是向一群人发送更复杂的带有附件的信息 。接下来,看几个可行的方案:
邮件发送简短消息最方便的Linux命令是邮件 。假设你需要提醒你的老板你今天必须早点离开,你可以应用这样一个命令:
$ echo "Reminder: Leaving at 4 PM today" | mail -s "early departure&资源网quot; myboss另一种方法是从文件中提取您想要发送的文本信息:
$ mail -s "Reminder:Leaving early" myboss < reason4leaving在这两种情况下,您都可以使用-s为电子邮件添加标题 。
发送邮件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 o资源网f appearance are nothing more ...您也可以发送这样的文件(歌词文件包括标题和文本):
$ sendmail recip < lyricsSendmain的输出也可能很长 。如果你很好奇,想看看输送系统和吸收系统之间的相互作用,可以添加-v (verbose)选项 。
$ sendmail -v recip@emailsite.com < lyrics狗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在上面的命令中,消息文件包括邮件的正文 。如果你没有别的东西可以弥补,你可以这样替换以前的订单:
$ echo "" | mutt -s "Agenda" recip -a agenda -a speakersmutt还有一个有用的功能就是可以加cc (-c)和bcc (-b) 。
$ mutt -s "Minutes from last meeting" recip@somesite.com -c myboss < mins远程登录如果你想知道发送电子邮件的细节,你可以使用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-DSN资源网250-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`do mutt -s "Minutes from May meeting" $recip < May_minutesdone总结从Linux命令行发送电子邮件的方式有很多 。一些工具提供了相当多的选项 。
【如何发送邮件(如何用Linux命令行发送邮件)】


    推荐阅读