使用mutt+msmtp在Linux命令行界面下发邮件

时间:2022-01-26 00:32:18

mutt命令执行了却发送不了邮件, 搜索了一会才明白原来是mutt需要一个发信的程序, msmtp刚好是一个不错的选择.

1. apt-get install mutt msmtp

(安装过程中会弹出Postfix的配置向导,这一步选择No Configuration即可)

2. ~/.muttrc & ~/.msmtprc 是当前用户的配置信息, 如果不加则会使用全局配置: /etc/Muttrc (msmtprc暂时找不到该文件, 不知为何?)

3. vi ~/.muttrc

在最后加上:

set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="zhang_san" ##发件人名字
set from=zhang_san@abc.cn ##发件人地址
set envelope_from=yes

4. vi ~/.msmtprc, 然后修改此文件的权限为600

defaults
port 587
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account freemail
host smtp.partner.outlook.cn
from chen_dong@abc.cn
auth on
user zhang_san@abc.cn
password XXXXXXX
logfile ~/.msmtp.log
account default : freemail

5. 测试

echo "hello world" | mutt -s "title" chen_dong@abc.cn

2015-9-1更新:

其实如果只是想实现发送邮件的功能, 则无需mutt的帮助, 通过msmtp -t receiver@abc.cn即可。

http://muttrcbuilder.org/

http://www.mutt.org/doc/manual/manual-6.html

以上两个网站和muttrc文件有关.

http://msmtp.sourceforge.net/doc/msmtprc.txt

以上这个网站是msmtprc的示例文件.

附上世纪互联版Office 365的SMTP信息:

chen@ubuntu1404:~$ msmtp --host=smtp.partner.outlook.cn --serverinfo --tls=on --tls-trust-file=/etc/ssl/certs/ca-certificates.crt
SMTP server at smtp.partner.outlook.cn ([42.159.163.194]), port :
SH2PR01CA024.partner.outlook.cn Microsoft ESMTP MAIL Service ready at Tue, Jul :: +
TLS certificate information:
Owner:
Common Name: partner.outlook.cn
Organization: Shanghai Blue Cloud Technology Co. Ltd
Organizational unit: Office365
Locality: Shanghai
State or Province: Shanghai
Country: CN
Issuer:
Common Name: WoSign Class OV Server CA G2
Organization: WoSign CA Limited
Country: CN
Validity:
Activation time: Tue Jul :: PM CST
Expiration time: Fri Jul :: PM CST
Fingerprints:
SHA1: B5:BB::D6:2B:8F:9E:A7:6A:CC::C4:FF:::D2:0E:9B::
MD5: :6E::6A:FB:7C:::1A:8D::CC:ED:7F::
Capabilities:
SIZE :
Maximum message size is bytes = 150.00 MiB
PIPELINING:
Support for command grouping for faster transmission
DSN:
Support for Delivery Status Notifications
STARTTLS:
Support for TLS encryption via the STARTTLS command
AUTH:
Supported authentication methods:
LOGIN