转载来源 :在 Linux 命令行发送邮件的 5 种方法 :http://www.safebase.cn/article-259551-1.html

摘要: 当你需要在 shell 脚本中创建邮件时,就需要用到命令行发送邮件的知识。Linux 中有很多命令可以实现发送邮件。-- Magesh Maruthamuthu(作者)当你需要在 shell 脚本中创建邮件时,就需要用到命令行发送邮件的知识。Linux 中有很多命令可以实现发送邮件。本教程中包含了最流行的 5 个命令行邮件客户端

当你需要在 shell 脚本中创建邮件时,就需要用到命令行发送邮件的知识。Linux 中有很多命令可以实现发送邮件。-- Magesh Maruthamuthu(作者)

当你需要在 shell 脚本中创建邮件时,就需要用到命令行发送邮件的知识。Linux 中有很多命令可以实现发送邮件。本教程中包含了最流行的 5 个命令行邮件客户端,你可以选择其中一个。这 5 个命令分别是:

  • mail / mailx
  • mutt
  • mpack
  • sendmail
  • ssmtp

工作原理

我先从整体上来解释下 Linux 中邮件命令怎么把邮件传递给收件人的。邮件命令撰写邮件并发送给一个本地邮件传输代理(MTA,如 sendmail、Postfix)。邮件服务器和远程邮件服务器之间通信以实际发送和接收邮件。下面的流程可以看得更详细。

1) 如何在 Linux 上安装 mail/mailx 命令

mail 命令是 Linux 终端发送邮件用的最多的命令。mailx 是 mail 命令的更新版本,基于 Berkeley Mail 8.1,意在提供 POSIX mailx 命令的功能,并支持 MIME、IMAP、POP3、SMTP 和 S/MIME 扩展。mailx 在某些交互特性上更加强大,如缓冲邮件消息、垃圾邮件评分和过滤等。在 Linux 发行版上,mail 命令是 mailx 命令的软链接。可以运行下面的命令从官方发行版仓库安装 mail 命令。

对于 Debian/Ubuntu 系统,使用 APT-GET 命令 或 APT 命令 安装 mailutils。

$ sudo apt-get install mailutils -y



对于 RHEL/CentOS 系统,使用 YUM 命令 安装 mailx。

$ sudo yum install mailx -y

对于 Fedora 系统,使用 DNF 命令 安装 mailx。

$ sudo dnf install mailx -y

1a) 如何在 Linux 上使用 mail 命令发送邮件

mail 命令简单易用。如果你不需要发送附件,使用下面的 mail 命令格式就可以发送邮件了:

$ echo "This is the mail body" | mail -s "Subject" 2daygeek@gmail.com

如果你要发送附件,使用下面的 mail 命令格式:

$ echo "This is the mail body" | mail -a test1.txt -s "Subject" 2daygeek@gmail.com
  • -a:用于在基于 Red Hat 的系统上添加附件。
  • -A:用于在基于 Debian 的系统上添加附件。
  • -s:指定消息标题。

2) 如何在 Linux 上安装 mutt 命令

mutt 是另一个很受欢迎的在 Linux 终端发送邮件的命令。mutt 是一个小而强大的基于文本的程序,用来在 unix 操作系统下阅读和发送电子邮件,并支持彩色终端、MIME、OpenPGP 和按邮件线索排序的模式。可以运行下面的命令从官方发行版仓库安装 mutt 命令。

对于 Debian/Ubuntu 系统,使用 APT-GET 命令 或 APT 命令 安装 mutt。

$ sudo apt-get install mutt

对于 RHEL/CentOS 系统,使用 YUM 命令 安装 mutt。

$ sudo yum install mutt

对于 Fedora 系统,使用 DNF 命令 安装 mutt。

$ sudo dnf install mutt

2b) 如何在 Linux 上使用 mutt 命令发送邮件

mutt 一样简单易用。如果你不需要发送附件,使用下面的 mutt 命令格式就可以发送邮件了:

$ echo "This is the mail body" | mutt -s "Subject" 2daygeek@gmail.com

如果你要发送附件,使用下面的 mutt 命令格式:

$ echo "This is the mail body" | mutt -s "Subject" 2daygeek@gmail.com -a test1.txt

3) 如何在 Linux 上安装 mpack 命令

mpack 是另一个很受欢迎的在 Linux 终端上发送邮件的命令。mpack 程序会在一个或多个 MIME 消息中对命名的文件进行编码。编码后的消息被发送到一个或多个收件人。可以运行下面的命令从官方发行版仓库安装 mpack 命令。

对于 Debian/Ubuntu 系统,使用 APT-GET 命令 或 APT 命令 安装 mpack。

$ sudo apt-get install mpack

对于 RHEL/CentOS 系统,使用 YUM 命令 安装 mpack。

$ sudo yum install mpack

对于 Fedora 系统,使用 DNF 命令 安装 mpack。

$ sudo dnf install mpack

3a) 如何在 Linux 上使用 mpack 命令发送邮件

mpack 同样简单易用。如果你不需要发送附件,使用下面的 mpack 命令格式就可以发送邮件了:

$ echo "This is the mail body" | mpack -s "Subject" 2daygeek@gmail.com

如果你要发送附件,使用下面的 mpack 命令格式:

$ echo "This is the mail body" | mpack -s "Subject" 2daygeek@gmail.com -a test1.txt

4) 如何在 Linux 上安装 sendmail 命令

sendmail 是一个上广泛使用的通用 SMTP 服务器,你也可以从命令行用 sendmail 发邮件。可以运行下面的命令从官方发行版仓库安装 sendmail 命令。

对于 Debian/Ubuntu 系统,使用 APT-GET 命令 或 APT 命令 安装 sendmail。

$ sudo apt-get install sendmail

对于 RHEL/CentOS 系统,使用 YUM 命令 安装 sendmail。

$ sudo yum install sendmail

对于 Fedora 系统,使用 DNF 命令 安装 sendmail。

$ sudo dnf install sendmail

4a) 如何在 Linux 上使用 sendmail 命令发送邮件

sendmail 同样简单易用。使用下面的 sendmail 命令发送邮件。

$ echo -e "Subject: Test MailnThis is the mail body" > /tmp/send-mail.txt
$ sendmail 2daygeek@gmail.com < send-mail.txt

5) 如何在 Linux 上安装 ssmtp 命令

ssmtp 是类似 sendmail 的一个只发送不接收的工具,可以把邮件从本地计算机传递到配置好的 邮件主机(mailhub)。用户可以在 Linux 命令行用 ssmtp 把邮件发送到 SMTP 服务器。可以运行下面的命令从官方发行版仓库安装 ssmtp 命令。

对于 Debian/Ubuntu 系统,使用 APT-GET 命令 或 APT 命令 安装 ssmtp。

$ sudo apt-get install ssmtp

对于 RHEL/CentOS 系统,使用 YUM 命令 安装 ssmtp。

$ sudo yum install ssmtp

对于 Fedora 系统,使用 DNF 命令 安装 ssmtp。

$ sudo dnf install ssmtp

5a) 如何在 Linux 上使用 ssmtp 命令发送邮件

ssmtp 同样简单易用。使用下面的 ssmtp 命令格式发送邮件。

$ echo -e "Subject: Test MailnThis is the mail body" > /tmp/ssmtp-mail.txt
$ ssmtp 2daygeek@gmail.com < /tmp/ssmtp-mail.txt

在 Linux 命令行发送邮件的 5 种方法相关推荐

  1. python 命令-python解析命令行参数的三种方法详解

    这篇文章主要介绍了python解析命令行参数的三种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python解析命令行参数主要有三种方法: ...

  2. 后台执行UNIX/Linux命令和脚本的五种方法

    http://hankjin.blog.163.com/blog/static/337319372010111492348473/ 2010-12-14 09:35:48|  分类: Unix |   ...

  3. 用Linux命令行生成随机密码的十种方法

    Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 这些方法均收集于Command-Line ...

  4. [译]后台执行UNIX/Linux命令和脚本的五种方法

    原文:http://www.thegeekstuff.com/2010/12/5-ways-to-execute-linux-command/ by SathiyaMoorthy on Decembe ...

  5. vim:复制复制字符到vim的命令行窗口的4种方法

    1.从vim中拷贝字符串到:命令行: 先yank字符串 然后在:命令行ctrl-r" 2.从其它窗体中拷贝字符串到:命令行: 先拷贝字符串到系统剪贴板 然后在:命令行ctrl-r+或者ctr ...

  6. ubuntu怎样打开命令行终端(5种方法)

    怎样打开终端 方法1 首先在桌面任意空白处,按CTRL+ALT+T 这时就弹出终端窗口 (呵呵这招最好用) 方法2 指向左上角的Dash主页图标,并且双击打开 在弹出的Dash主页里的最下方,打开一个 ...

  7. MFC接收命令行参数的三种方法

    方法一: CString sCmdline = ::GetCommandLine(); AfxMessageBox(sCmdline); 将获取到 "C:\test\app.exe -1 - ...

  8. linux怎么进mysql天气_在Linux 命令行下浏览天气预报

    导读 Q: 我经常在 Linux 桌面查看天气预报.然而,是否有一种在终端环境下,不通过桌面小插件或者浏览器查询天气预报的方法?其中有一个就是wego,一个终端下的小巧程序.使用基于ncurses 的 ...

  9. 网页版天气预报linux,在Linux 命令行下浏览天气预报

    在Linux 下安装 wego 安装 wego 相当简单.wego 是用 Go 编写的,引起第一个步骤就是安装Go 语言.然后再安装 wego. $ go get github.com/schachm ...

最新文章

  1. JavaMail API 概述
  2. 关于渗透的一些思路持续更新(自我理解)
  3. SEO那些事:一句代码一键分享网站
  4. 【Flask】Nginx / Gunicorn入门:部署你的Flask项目
  5. ASP.NET Core和json请求这样用真简单,axios、微信小程序得救了
  6. java流写入数据库_成为Java流大师–第4部分:数据库流
  7. 我从ColdFusion迁移到Java开发
  8. xcode 创建模拟器_Xcode编译WebKit
  9. Spring RestTemplate 访问https站点
  10. Linux 命令之——文件行数查询命令温习
  11. 图(二):图的邻接矩阵表示
  12. python模拟账号登录_用Python(Tornado)模拟登录小米帐号
  13. 2020年中国医疗卫生机构数量、床位、人员和诊疗次数现状,疫情下诊疗人数有所下降「图」
  14. android模拟器directx,DX千骑驱动器模拟器
  15. cmos逻辑门传输延迟时间_芯片设计进阶之路——从CMOS到建立时间和保持时间
  16. 内网渗透系列:内网隧道之DNS隧道
  17. xp怎样修改计算机mac地址,WinXP系统MAC地址修改的方法
  18. Objective C Bridging header —— swift MD5
  19. Cannot attach the file 'C:\Users\raye\Documents\(LocalDB)\MSSQLLocalDB.mdf' as database 'D:\DIY\DMS-
  20. GitHub 上值得收藏的100个精选前端项目!你知道几个?

热门文章

  1. ubuntu下的jdk进行升级_Ubuntu下JDK升级1.7
  2. 树莓派 rfid_技术 | 对恶意树莓派设备的取证分析
  3. linux基础命令_Linux编程基础:常用命令
  4. 远程调用python_远的解释|远的意思|汉典“远”字的基本解释
  5. DC.SetMapMode()的用法记录
  6. 竞价推广经验分享 账户的搭建方法
  7. Maven+Eclipse+SparkStreaming+Kafka整合
  8. 模块化配电系统在高密度数据中心的应用
  9. linux 把秒数转换为正常时间格式命令
  10. 反素数(高合成数?)