使用mutt+msmtp在Linux命令行界面下发邮件(续)
一年前写过一篇《使用mutt+msmtp在Linux命令行界面下发邮件》,但是最近想照着文中的办法解决新的问题时发现又有新的疑惑了,所以就有了今天这篇“续集”。
首先说说msmtp。如果你仅仅想在Linux下发送邮件,那么只靠它就能实现了,只需要配置好如何连接到相应的SMTP服务器即可,以下我就以腾讯企业邮为例,说一下具体的步骤(以下皆为root用户):
1. apt-get install msmtp
2. vi ~/.msmtprc && chmod 600 ~/.msmtprc
defaults auth on tls on tls_starttls off #这个必须显式声明,折腾好久 tls_trust_file /etc/ssl/certs/ca-certificates.crt account freemail host smtp.exmail.qq.com port 465 from chend@qq.com.cn user chend@qq.com.cn password XXXXXX logfile ~/msmtp.log account default : freemail
3. 测试:echo "a test mail." | msmtp --debug --file=./.msmtprc 1234567@qq.com
接下来说说mutt。mutt是一个邮件客户端,不过我猜测它无法单独实现发送邮件的功能,必须依赖类似msmtp这样的工具,反正网上基本都是这两者的结合使用。我将采用编译源代码的方式来安装mutt,原因是通过apt-get的方式会将Postfix一起装上。以下是具体步骤(以下皆为root用户):
1. apt-get install libncurses5-dev
2. ./configure --prefix=/usr/local && make && make install
3. vi ~/.muttrc # 默认的muttrc文件在这里:/usr/local/etc/Muttrc
set sendmail="/usr/bin/msmtp" set realname="监控系统" set use_from=yes set editor="vi"
4. 测试:echo "邮件正文" | mutt -s "邮件主题" 1234567@qq.com
2016-11-2更新:
闲来无事,想研究一下网上说的用Mutt+IMAP来实现收取邮件的方法,唯一要注意的是在编译时请加上--enable-imap参数,其余的就按照网上的文章操作即可。
附上腾讯企业邮的SMTP信息:
root@ubuntu:~# msmtp --host=smtp.exmail.qq.com --serverinfo --tls=on --tls-trust-file=/etc/ssl/certs/ca-certificates.crt SMTP server at smtp.exmail.qq.com ([183.57.48.39]), port 25: smtp.qq.com Esmtp QQ Mail Server TLS certificate information: Owner: Common Name: pop.qq.com Organization: Shenzhen Tencent Computer Systems Company Limited Organizational unit: R&D Locality: Shenzhen State or Province: Guangdong Country: CN Issuer: Common Name: GeoTrust SSL CA - G3 Organization: GeoTrust Inc. Country: US Validity: Activation time: Tue 06 Sep 2016 05:00:00 PM PDT Expiration time: Fri 07 Dec 2018 03:59:59 PM PST Fingerprints: SHA1: 45:62:5E:9F:41:60:97:3F:18:E9:FA:53:FE:A5:DA:03:0C:58:55:4C MD5: DE:DF:05:9C:22:71:F0:91:83:D0:0B:A8:01:04:06:82 Capabilities: SIZE 73400320: Maximum message size is 73400320 bytes = 70.00 MiB PIPELINING: Support for command grouping for faster transmission STARTTLS: Support for TLS encryption via the STARTTLS command AUTH: Supported authentication methods: PLAIN LOGIN