资讯专栏INFORMATION COLUMN

Linux发送邮件的命令行应用

_ivan / 2418人阅读

摘要:参考使用发送邮件安装其中是软件本身,是用来帮助发件的工具。关于配置的解释可以看这里发送邮件命令格式注意收件人的地址前一定要明确指定参数名,如下所示。否则无法正确发送附件。通过可以看到,发送出显示正常的邮件的版本是在树莓派上安装的。

先说明下:不管是什么邮件客户端,都是可以直接发邮件的。但是,因为默认的话,发件人是很随便地设置成你本机地名字。并且100%会被邮箱当成垃圾邮件处理。如果你去垃圾箱里找,还是可以看到的。这就是为什么,我们还是需要配置它,让它登录某个邮箱来使用它的身份发邮件了,比如gmail邮箱或阿里云邮箱。(国内的163和qq邮箱都已经屏蔽第三方客户端登录了)

另注:为什么如今这么电子技术这么发达的年代,命令行邮件终端相关的应用和文章还这么少几乎都是很多年前的?我想是因为:python等都已经能很好很方便支持发邮件了,没必要折腾命令行版本。
事实上,试过就知道:为什么这些客户端会被抛弃了。。。请看下面我入的坑:
~MailSendmail~
注:Mail的配置相当麻烦,网上找文章也寥寥无几,有也都是十几年前的东西。所以建议放弃,使用更先进的客户端。
Mutt
Mutt是Linux邮箱客户端榜上有名的利器了。

先不说什么界面操作之类的,因为我们用命令行的邮箱客户端都是用来自动化的,不想用什么界面。

参考:Linux使用mutt发送邮件

安装

其中mutt是软件本身,msmtp是用来帮助发件的工具。

# Linux
$ sudo apt-get install mutt msmtp

# 或Mac
$ brew install mutt msmtp
配置

你需要配置两个文件,一个是~/.muttrc用来配置Mutt本身,一个是~/.msmtprc用来配置发件人的,需要写入密码一类的。

参考:Linux下使用mutt,msmtp发信

配置~/.msmtprc:

account     Aliyun
host        smtp.aliyun.com
from        jason@aliyun.com
auth        login
user        jason@aliyun.com
password    abcde123123123
account default : Aliyun
logfile ~/.msmtp.log

然后必须修改~/.msmtprc文件的权限,否则程序无法读取,发邮件时会报错。修改如下:

chmod 600 ~/.msmtprc

配置~/.muttrc

set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="Jason"
set from="Jason@aliyun.com"
set envelope_from=yes
set editor="vim -nw"

注意:第一条set sendmail中的位置不一定是这样的,在Mac和Linux上都会不同,所以需要用which msmtp来找到它的真实位置,再填进去。

关于配置的解释可以看这里:

发送邮件命令格式

注意:收件人的地址前一定要明确指定参数名--,如下所示。否则无法正确发送附件。

# 常用格式如下 -s   “标题”  -c    抄送  -a  附件
$ echo “HELLO WORLD” | mutt -s “TITLE” -- RECIPIENT@gmail.com

# 发送HTML格式漂亮的邮件
$ mutt -- RECIPIENT@gmail.com -e "set content_type="text/html"" -s "TITLE" < out.html

# 发送给多人,抄送,添加附件
$ echo "hello" | mutt -s "TITLE" aaa@gmail.com, bbb@gmail.com -c ccc@gmail.com -a /home/pi/pic.jpg address="RECIPIENT@gmail.com"

# 发送邮件时设置邮件的文本类型为:html格式,邮件的等级为:重要
$ echo $content | mutt  -s "${subject}" -e "set content_type="text/html"" -e "send-hook . "my_hdr  X-Priority: 1"" $address

语法:

参数:

Mutt发送HTML漂亮富文本邮件

默认语法是:

$ mutt -- RECIPIENT@gmail.com -e "set content_type="text/html"" -s "TITLE" < out.html

但是,值得注意的是,语法虽然简单,可一旦你本机的mutt版本不对,邮件将无法显示出正确的格式,而只是无尽的html源代码。
通过mutt -v可以看到,发送出显示正常的邮件的mutt版本是在树莓派上安装的Mutt 1.5.23 (2014-03-12)。而不成功的是在Mac上的Mutt 1.9.5 (2018-04-13),反而是最新的版本!

邮箱配置

阿里云邮箱

163邮箱

新浪邮箱

- 新浪@sina.com邮箱,
接收服务器地址为:pop.sina.com或pop3.sina.com,
发送服务器地址为:smtp.sina.com

- 新浪@sina.cn邮箱,
接收服务器地址为:pop.sina.cn或pop3.sina.cn,
发送服务器地址为:smtp.sina.cn

- 端口号设置:
POP协议:pop端口:110、smtp端口:25 
IMAP协议:IMAP 端口:143、smtp端口:25

- 加密设置:
pop是995、imap的是993
smtp是587或465,如465不能正常使用,
可以更换587试试,但不同的国家有可能只支持
一个端口(并非所有客户端都支持加密码) 。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/10766.html

相关文章

  • Linux 发送邮件命令应用

    摘要:参考使用发送邮件安装其中是软件本身,是用来帮助发件的工具。关于配置的解释可以看这里发送邮件命令格式注意收件人的地址前一定要明确指定参数名,如下所示。否则无法正确发送附件。通过可以看到,发送出显示正常的邮件的版本是在树莓派上安装的。 发送邮件有超多种方法,但是接收邮件就要麻烦很多。所以这里先只讲发送邮件 先说明下:不管是什么邮件客户端,都是可以直接发邮件的。但是,因为默认的话,发件人是很...

    XanaHopper 评论0 收藏0
  • [译] 4个可以发送完整电子邮件命令工具

    摘要:今天的文章里我们会讲到一些使用命令行工具来发送带附件的电子邮件的方法。有不同的命令行工具可以发送邮件,这里我分享几个多数用户会使用的工具,如和。 今天的文章里我们会讲到一些使用Linux命令行工具来发送带附件的电子邮件的方法。它有很多用处,比如在应用程序所在服务器上,使用电子邮件发送一个文件过来,或者你可以在脚本中使用这些命令来做一些自动化操作。在本文的例子中,我们会使用foo.tar...

    qc1iu 评论0 收藏0
  • [译] 4个可以发送完整电子邮件命令工具

    摘要:今天的文章里我们会讲到一些使用命令行工具来发送带附件的电子邮件的方法。有不同的命令行工具可以发送邮件,这里我分享几个多数用户会使用的工具,如和。 今天的文章里我们会讲到一些使用Linux命令行工具来发送带附件的电子邮件的方法。它有很多用处,比如在应用程序所在服务器上,使用电子邮件发送一个文件过来,或者你可以在脚本中使用这些命令来做一些自动化操作。在本文的例子中,我们会使用foo.tar...

    Kaede 评论0 收藏0
  • Linux上使用logwatch分析监控日志文件

    摘要:的主要目的是生成更易于使用的日志摘要,并不是用来对日志进行实时的处理和监控的。修改日志分析级别配置指令控制着报告的详细程度。最后,为新建的脚本添加执行权限参考系统中使用监控日志文件英文简单配置教程原文链接地址 1. 介绍 在维护Linux服务器时,经常需要查看系统中各种服务的日志,以检查服务器的运行状态。 如登陆历史、邮件、软件安装等日志。系统管理员一个个去检查会十分不方便;且大多时...

    phodal 评论0 收藏0
  • Linux上使用logwatch分析监控日志文件

    摘要:的主要目的是生成更易于使用的日志摘要,并不是用来对日志进行实时的处理和监控的。修改日志分析级别配置指令控制着报告的详细程度。最后,为新建的脚本添加执行权限参考系统中使用监控日志文件英文简单配置教程原文链接地址 1. 介绍 在维护Linux服务器时,经常需要查看系统中各种服务的日志,以检查服务器的运行状态。 如登陆历史、邮件、软件安装等日志。系统管理员一个个去检查会十分不方便;且大多时...

    simon_chen 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<