Linux下配置用msmtp和mutt发邮件

简介:

Linux下可以直接用mail命令发送邮件,但是发件人是user@servername,如果机器没有外网的dns,其他人就无法回复。此时,有一个可以使用网络免费邮箱服务的邮件发送程序就比较重要了。msmtp就是这样的一个程序。

#1、下载源码包

wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.31/msmtp-1.4.31.tar.bz2/download

#2、解压

tar -jxvf msmtp-1.4.31.tar.bz2 && cd msmtp-1.4.31

#build and install

./configure --prefix=/usr/local/msmtp && make && make install

#link to /usr/bin

ln -s /usr/local/msmtp/bin/msmtp /usr/bin/msmtp

 

#3、新建msmtp的配置文件

mkdir /usr/local/msmtp/etc && vim /usr/local/msmtp/etc/msmtprc

 

#4、输入如下内容

# Set default values for all following accounts.
defaults

logfile /var/log/msmtp/msmtp.log
# The SMTP server of the provider.
account 163

# SMTP邮件服务器地址
host smtp.163.com

# 发送的邮件Email
from user@163.com
auth login

# 邮件服务器登录账号
user user@163.com

# 邮件服务器登陆密码
password password
# Set a default account
account default : 163

 

#############################################

#5、测试msmtp是否配置正确

msmtp test@163.comtest
[ctrl+d]

#6、安装配置mutt
yum install -y mutt
vim /etc/Muttrc

#输入如下内容:
set sendmail='/usr/bin/msmtp'
set use_from=yesset realname='YOURNAME'
set from=user@163.comset envelope_from=yes auto_view text/htmlset charset='utf-8'
set send_charset='utf-8'
set locale ='zh_CN.UTF-8'
set content_type = 'text/html\;charset=utf-8'
set rfc2047_parameters=yes

#6、配置完毕,测试一下吧!
echo  "测试test"|mutt -s "test"  receiver@163.com




首先介绍一下mutt这个软件,它是一款基于文字界面的邮件客户端,非常小巧,但功能强大,可以用它来读写,回复保存和删除你的邮件,能在linux命令行模式下收发邮件附件。
  我只讲它很小的一部分功能,因为我也是刚刚开始摸索这个软件。更多的用法请查阅官网:http://www.mutt.org
  一、mutt的安装
1    yum -y install sendmail    
2    #需要安装sendmail并开启防火墙的25端口,如果你需要收邮件110端口也要开    
3    yum -y install mutt    
  二、配置信息
  关于配置信息,有一点需要说明的,网上很多教程都说,编辑/root/.muttrc以修改配置文件,我想说的是,我在安装完成之后, /root目录下并没有 .muttrc 这个隐藏文件,你可以从其它地方复制过来,或者自己新建一个文件。这里我是复制的。
  你可以通过find命令找到Muttrc这个文件,命令如下 find / -name Muttrc ,然后通过命令 cp /etc/Muttrc /root/.muttrc 复制到 /root 下后更名为 .muttrc ,然后你就可以编辑配置文件了。1    #如果你收到的邮件乱码,设置以下信息    
2    set charset="utf-8"    
3    set rfc2047_parameters=yes    
4    #如果你想自定义发件人信息,需要进行如下设置    
5    set envelope_from=yes    
6    set use_from=yes    
7    set from=root@itdhz.com    
8    set realname="itdhz"    
  安装完mutt后,在/usr/share/doc/mutt* 下有一份很好的手册,可以看一下。
  三、邮件发送
  语 法:
  mutt [-hnpRvxz][-a<文件>][-b<地址>][-c<地址>][-f<邮件文 件>][-F<配置文件>][-H<邮件草稿>][-i<文件>][-m<类型>] [-s<主题>][邮件地址]
  参 数:
 -a <文件> 在邮件中加上附加文件。
 -b <地址> 指定密件副本的收信人地址。
 -c <地址> 指定副本的收信人地址。
 -f <邮件文件> 指定要载入的邮件文件。
 -F <配置文件> 指定mutt程序的设置文件,而不读取预设的.muttrc文件。
 -h 显示帮助。
 -H <邮件草稿> 将指定的邮件草稿送出。
 -i <文件> 将指定文件插入邮件内文中。
 -m <类型> 指定预设的邮件信箱类型。
 -n 不要去读取程序培植文件(/etc/Muttrc)。
 -p 在mutt中编辑完邮件后,而不想将邮件立即送出,可将该邮件暂缓寄出。
 -R 以只读的方式开启邮件文件。
 -s <主题> 指定邮件的主题。
 -v 显示mutt的版本信息以及当初编译此文件时所给予的参数。
 -x 模拟mailx的编辑方式。
 -z 与-f参数一并使用时,若邮件文件中没有邮件即不启动mutt。
  四、举例
  这里我用自己备份网站的一段代码举例加以说明
1    mutt 408160341@qq.com -s "itdhz数据备份" -a /home/backup/itdhz.sql </root/readme.txt    
2    或者    
3    echo "test" | mutt 408160341@qq.com -s "itdhz数据备份" -a /home/backup/itdhz.sql    
  这段代码表示,发送邮件到 408160341@qq.com 这个邮箱,邮件主题是“itdhz数据备份”,邮件内容在 /root/readme.txt 中,邮件中包含附件 /home/backup/itdhz.sql。如果要发送多个附件,需要在每个附件前加 -a 参数。



如果没有正文文件的话,就用echo直接把正文打出来就行了,如:

echo "this is content" | mutt -s "this is subject" -a /path/yourfile abc@local.domain -c bbb@local.domain

如果有正文文件的话就用

cat /path/contentfile  | mutt -s "this is subject" -a /path/yourfile abc@local.domain -c bbb@local.domain

mutt是linux下一个强大的邮件客户端软件.

-s是主题

-a是附件

-c是抄送,多个抄送就是多个-c,如

cat /path/contentfile  | mutt -s "this is subject" -a /path/yourfile abc@local.domain -c bbb@local.domain -c ccc@local.domain -c ddd@local.domain

如果发送多个email,就直接列出来就行了,如

cat /path/contentfile  | mutt -s "this is subject" -a /path/yourfile abc@local.domain  bbb@local.domain ccc@local.domain ddd@local.domain











本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1692513,如需转载请自行联系原作者
目录
相关文章
|
16天前
|
安全 Ubuntu Java
Linux配置使用篇
Linux配置使用篇
|
28天前
|
存储 负载均衡 索引
linux7安装elasticsearch-7.4.0集群配置
linux7安装elasticsearch-7.4.0集群配置
113 0
|
1月前
|
监控 Linux Shell
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
39 0
|
1月前
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】Linux 设置和配置PPP pppsetup命令 使用教程
【Shell 命令集合 网络通讯 】Linux 设置和配置PPP pppsetup命令 使用教程
39 0
|
1月前
|
缓存 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 配置DNS dnsconf 命令 使用教程
【Shell 命令集合 网络通讯 】Linux 配置DNS dnsconf 命令 使用教程
38 0
|
1月前
|
域名解析 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
56 1
|
1月前
|
存储 Shell Linux
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
30 1
|
15天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4
|
1天前
|
Ubuntu Linux 测试技术
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试(下)
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试
19 1
|
1天前
|
运维 网络协议 Linux
Linux(28) Linux双网卡配置为连接到Linux主机的PC提供外网访问
Linux(28) Linux双网卡配置为连接到Linux主机的PC提供外网访问
11 1