白城网

  • 宠物
  • tv286@qq.com
  • 南京保健
  • 淘宝小号
  • 全站显示 30/月
  • 全站显示 30/月
  • 全站显示 30/月
  • 全站显示 30/月
  •   白城网   电脑网络   技术|如何用 Linux 命令行发电子邮件
    返回列表
    查看: 57|回复: 0
    收起左侧

    技术|如何用 Linux 命令行发电子邮件

    [复制链接]
     楼主| 发表于 7-3-2019 21:52:03 | 显示全部楼层 |阅读模式

    丈母娘每晚约我满足她


    Linux 提供了几个可以让你通过终端发送电子邮件的命令,下面来展示一些有趣的方法。

    Linux 可以用多种方式通过命令行发送电子邮件。有一些方法十分简单,有一些相对会复杂一些,不过仍旧提供了很多有用的特性。选择哪一种方式取决于你想要什么 —— 向同事快速发送消息,还是向一批人群发带有附件的更复杂的信息。接下来看一看几种可行方案:
    mail
    发送一条简单消息最便捷的 Linux 命令是
    1. mail
    复制代码
    。假设你需要提醒老板你今天得早点走,你可以使用这样的一条命令:
    1. $ echo "Reminder: Leaving at 4 PM today" | mail -s "early departure" myboss
    复制代码

    另一种方式是从一个文件中提取出你想要发送的文本信息:
    1. $ mail -s "Reminder:Leaving early" myboss
    2. 在以上两种情况中,你都可以通过 [code]-s
    复制代码
    来为邮件添加标题。
    sendmail
    使用
    1. sendmail
    复制代码
    命令可以发送一封不包含标题的快信。(用目标收件人替换
    1. recip
    复制代码
    ):
    1. $ echo "leaving now" | sendmail recip
    复制代码

    你可以用这条命令发送一条只有标题,没有内容的信息:
    1. $ echo "Subject: leaving now" | sendmail recip
    复制代码

    你也可以用
    1. sendmail
    复制代码
    发送一条包含一条标题行的完整信息。不过使用这个方法时,你的标题行会被添加到要发送的文件中,如下例所示:
    1. Subject: Requested lyrics
    2. I would just like to say that, in my opinion, longer hair and other flamboyant
    3. affectations of appearance are nothing more ...
    复制代码

    你也可以发送这样的文件(
    1. lyric
    复制代码
    文件包含标题和正文):
    1. $ sendmail recip
    2. [code]sendmain
    复制代码
    的输出也可以很冗长。如果你感到好奇并希望查看发送系统和接收系统之间的交互,请添加
    1. -v
    复制代码
    (verbose)选项。
    1. $ sendmail -v recip@emailsite.com
    2. mutt
    3. [code]mutt
    复制代码
    是通过命令行发送邮件的一个很好的工具,在使用前你需要安装它。
    1. mutt
    复制代码
    的一个很方便的优势就是它允许你在邮件中添加附件。
    使用
    1. mutt
    复制代码
    发送一条快速信息:
    1. $ echo "Please check last night's backups" | mutt -s "backup check" recip
    复制代码

    从文件中获取内容:
    1. $ mutt -s "Agenda" recip
    2. 使用 [code]-a
    复制代码
    选项在
    1. mutt
    复制代码
    中添加附件。你甚至可以添加不止一个附件 —— 如下一条命令所示:
    1. $ mutt -s "Agenda" recip -a agenda -a speakers
    2. 在以上的命令中,[code]msg
    复制代码
    文件包含了邮件中的正文。如果你没有其他补充的内容,你可以这样来代替之前的命令:
    1. $ echo "" | mutt -s "Agenda" recip -a agenda -a speakers
    复制代码
    1. mutt
    复制代码
    另一个有用的功能是可以添加抄送(
    1. -c
    复制代码
    )和密送(
    1. -b
    复制代码
    )。
    1. $ mutt -s "Minutes from last meeting" recip@somesite.com -c myboss
    2. telnet
    3. 如果你想深入了解发送电子邮件的细节,你可以使用 [code]telnet
    复制代码
    来进行电子邮件交互操作。但正如所说的那样,你需要“学习术语”。邮件服务器期望一系列命令,其中包括自我介绍(
    1. EHLO
    复制代码
    命令)、提供发件人(
    1. MAIL FROM
    复制代码
    命令)、指定收件人(
    1. RCPT TO
    复制代码
    命令),然后添加消息(
    1. DATA
    复制代码
    )并以
    1. .
    复制代码
    结束消息。并不是所有的电子邮件服务器都会响应这些请求。此方法通常仅用于故障排除。
    1. $ telnet emailsite.org 25
    2. Trying 192.168.0.12...
    3. Connected to emailsite.
    4. Escape character is '^]'.
    5. 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]
    6. EHLO mysite.org               
    7. 向多个收件人发送电子邮件
    8. 如果你希望通过 Linux 命令行向一大组收件人发送电子邮件,你可以使用一个循环来帮助你完成任务,如下面应用在 [code]mutt
    复制代码
    中的例子:
    [code]$ for recip in `cat recips`
    do
        mutt -s "Minutes from May meeting" $recip
    总结
    有很多方法可以从 Linux 命令行发送电子邮件。有些工具提供了相当多的选项。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    收藏:0 | 帖子:1709

    有图有真相