linux技巧

Linux下命令行发送邮件(mutt 和 msmtp)

一、使用本地邮件服务器postfix发送
1、安装邮件服务器postfix(一般默认已经安装)
yum install postfix -y
2、安装mutt发件客户端
mutt 这个软件是一款基于文字界面的邮件客户端,非常小巧,但功能强大,可以用它来读写,回复保存和删除你的邮件,能在 linux 命令行模式下收发邮件附件。
yum install mutt -y
3、配置mutt
在配置文件 /etc/Muttrc 添加如下信息。如果你收到的邮件乱码,设置以下信息

set charset=”utf-8″
set rfc2047_parameters=yes
如果你想自定义发件人信息,需要进行如下设置

set envelope_from=yes
set sendmail="/usr/sbin/sendmail.postfix"
set use_from=yes
set from=shery@moneyslow.com
set realname="moneyslow"

4、邮件发送测试
举例加以说明

mutt 333@qq.com -s”数据备份” -a /home/backup/master_bak.sql < /root/readme.txt
或者

echo “test” | mutt 333@qq.com -s “Licz数据备份” -a /home/backup/master_bak.sql
这段代码表示,发送邮件到 333@qq.com 这个邮箱,邮件主题是“数据备份”,邮件正文内容在 /root/readme.txt 中,邮件中包含附件 /home/backup/master_bak.sql。如果要发送多个附件,需要在每个附件前加 -a 参数。

二、使用第三方邮件服务器发送
1、安装msmtp
之前的postfix无法满足我们调用126或者163的邮箱,我们需要使用 msmtp 发送。

yum install msmtp -y
2、配置msmtp
在家目录创建文件 .msmtprc,添加如下内容

account default
host smtp.moneyslow.com #需要发送邮件的服务器
from shery@moneyslow.com #要从哪个邮箱发出
auth on #认证模式
port 25
tls off #不需要安全登录
user shery #邮箱用户
password 123456a #邮箱密码
logfile /var/log/maillog #邮件日志路径
3、配置mutt
之前mutt调用的 postfix 发送邮件,现在我们需要改成 msmtp,在 /etc/Muttrc 里面改成如下内容:

set sendmail=”/usr/bin/msmtp”
set from=shery@moneyslow.com
附录
语 法:

mutt [-nRyzZ] [-e cmd] [-F file] [-m type] [-f file]
mutt [-nx] [-e cmd] [-F file] [-H file] [-i file] [-s subj] [-b addr] [-c addr] [-a file […] --] addr […]
mutt [-nx] [-e cmd] [-F file] [-s subj] [-b addr] [-c addr] [-a file […] --] addr […] < message
mutt [-n] [-e cmd] [-F file] -p
mutt [-n] [-e cmd] [-F file] -A alias
mutt [-n] [-e cmd] [-F file] -Q query


参 数:

<文件><地址><地址><邮件文件><配置文件><邮件草稿><文件><类型><主题>