ubuntu下使用mutt+msmtp发送邮件

摘要:
在ubuntu下安装mut非常方便。你只需要sudoapt getinstallmutt。此外,您需要安装msmtp,一个邮件发送小工具,sudoapt getinsallmsmtp。vi.muttrcsetsendmail=“/usr/bin/msmtp”setuse_from=yessetrealname=“冯玉斌”setfrom=fyb@163.comsetenvelope_from=YesMSMTP创建~/。msmtprc和~/。msmtp。日志,分别是配置文件和日志文件。vi.msmtprcaccountdefaulthostsmtp.163.comfromfyb@163.comauthplainuserfybpassword123456logfile~/.msmtp。日志因为密码是一个清晰的代码,我们需要修改此文件的权限。echo“测试”| mut-s“my_first_test”fyb@gmail.com-s“主题”-c“复写”echo“测试”|mutt-adbms_stats.txt-smy_first_testfyb@gmail.comecho-e“文本描述,参数为$allname”|mut-a“附件”-a“附件2”aa@163.com , bb@yahoo.com.cn(收件人)-ccc@163.com , dd@163.com(抄送)观察。msmtp日志文件。如果出现错误,将在日志文件中报告。当然,成功发送的日志也会出现在日志文件/bin/shcontent=“youcantellyourcolleguewhatsomethotoattomorrow”echo“$content”|mutt-s“hiJacky”Jacky's _ EmailOK,以上是我自动发送电子邮件的整个过程。怎么样?这很简单!

因为毕业设计的关系,每天需要多次备份文件,所做操作比较机械化,所以就想在shell下自动帮我备份文件,开始想使用mail命令但是mail命令发邮件需要开启sendmail服务,我只是一台客户端,开个sendmail没有必要,于是乎,在网上找了好久,才发现mutt是个好东西。

在ubuntu下安装mutt很方便,只需要sudo apt-get install mutt,另外需要安装msmtp,一个发邮件的小工具,sudo apt-get insall msmtp。这两个文件都很小,一下子就装完了。

接下来是配置文件,也很简单,这里我引用网上别人的配置和命令行。另外在文件的最后,附上一个脚本文件,是通过发送电子邮件自动备份。

=====================================引用================================

MUTT
系统全局设置/etc/Muttrc,如果使用某个系统用户,可以在~/.muttrc中设置。
vi .muttrc
set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="FengYuBin"
set
from=fyb@163.com
set envelope_from=yes

MSMTP
创建~/.msmtprc和~/.msmtp.log,分别为配置和日志文件。
vi .msmtprc
account default
host smtp.163.com
from fyb@163.com
auth plain
userfyb
password 123456
logfile ~/.msmtp.log
由于password是明码,所以我们需要修改此文件的权限。
chmod 600 .msmtprc
touch ~/.msmtp.log
查看SMTP服务器是否支持认证的TLS加密:
[oracle@oracle ~]$ msmtp --host=smtp.163.com --serverinfo
SMTP server at smtp.163.com (m5-86.163.com [202.108.5.86]), port 25:
163.com Anti-spam GT for Coremail System (163com[20050206])
Capabilities:
PIPELINING:
Support for command grouping for faster transmission
AUTH:
Supported authentication methods:
PLAIN LOGIN
到这里,你可以使用mutt来发送邮件了,我们测试一下。
echo "test" |mutt -s "my_first_test"
fyb@gmail.com
-s "subject"
-c "carbon-copy"
echo "test" |mutt -a dbms_stats.txt -s my_first_test fyb@gmail.com

echo -e "文字描述,可以带参数$allname" | mutt -a "附件(写好路径)" -a "附件2(写好路径)" aa@163.com,bb@yahoo.com.cn(收信人) -c cc@163.com,dd@163.com(抄送)
观察.msmtp.log文件,如果有错会在日志文件中被报告出来,当然,成功发送的日志也会出现在此日志文件内。
到这里发送邮件的过程已经全部完成,接下来要做的事就简单了,我们假设每天凌晨定时发送信件给公司某用户,可以编写脚本处理。
mail.sh
#!/bin/sh
content="you can tell your colleague what something to do at tomorrow"
echo "$content" |mutt -s "hi Jacky" Jacky's_email
OK,上面这些就是我实现自动发送邮件的全部过程,怎么样,很轻松吧!

=================================下面是我脚本文件=======================

#!/bin/bash
cd
fileName=bak\($(date +%Y%m%d%H%M)\).zip #产生文件名
zip $fileName -r fw2 #将需要备份的目录fw2打包
sleep 1 #睡眠一秒,让zip打包完成的文件写入硬盘
echo "Sending mail..."
#调用mutt发送文件
echo "firewall code src backup" | mutt -s "$fileName"
springtty@163.com -a "$fileName"
echo "Sent OK"

=============================================================================================

Ubuntu 命令行发送邮件的方法很多,如果Google一下,可以找到象mailx,mutt,nail等邮件客户端。但是安装以后,尝试通过它们放送邮件到 Gmail或者Hotmail,却得到“Mailing to remote domains not supported”的错误信息。认真研究一下,发现问题出在我的Ubuntu缺少完善的邮件服务器(MTA)。可是我的Ubuntu挂在自家的局域网上,没有固定IP,要搭建一个功能完善的邮件服务器估计不是很容易。(P.S.我在常用的Linux命令集一文里介绍了如何在命令行发送邮件,但是这适合于与安装有邮件服务器的终端,要不然的话,就只可以在本地内发送) 但是我想或许可以通过Gmail在命令行上发送邮件,上网Google了一下,终于找到了一个和我有相同问题的人,不同的是他还提供了详细的解决方案。很简单只需照猫画虎,就可以实现从命令行发送邮件到远端了。原文是英文的,我稍作翻译如下,希望对一些人有所帮助。

1. 安装所需的软件

 
$ sudo apt-get install msmtp
$ sudo apt-get install nail

2. 安装Gamil的Thawte证书

 
$ mkdir -p ~/etc/.certs
$ chmod 0700 ~/etc/.certs
$ cd ~/etc/.certs
$ wget https://www.verisign.com/support/thawte-roots.zip --no-check-certificate 
$ unzip thawte-roots.zip
$ cp Thawte\ Server\ Roots/ThawtePremiumServerCA_b64.txt ThawtePremiumServerCA.crt

3. 配置msmtp,我是用Vim打开的,原文使用gedit

 
$ gedit ~/.msmtprc
或者:
$ vim ~/.msmtprc

这将打开一个空白文档,你只需把下面大写部分改为你的个人设置后粘帖即可。因为我只想使用gmail account,所以我没有设置isp account,并且把account default改为gmail。别忘了改“USER”!!!

 
# config options: http://msmtp.sourceforge.net/doc/msmtp.html#A-user-configuration-file 
defaults
logfile /tmp/msmtp.log
# isp account
account isp
auth login
host SMTP.YOURISP.COM
port 25
user YOURNAME@ISP.COM
from YOURNAME@ISP.COM
password *****
# gmail account
account gmail
auth on
host smtp.gmail.com
port 587
user YOURNAME@gmail.com
password *****
from YOURNAME@gmail.com
tls on
tls_trust_file /home/USER/etc/.certs/ThawtePremiumServerCA.crt
# set default account to use (from above)
account default : isp
# 注意:我把默认改为 gmail

4. 更改msmtprc文件的许可

 
$ chmod 600 ~/.msmtprc

5. 配置nail,我是用Vim打开的,原文使用gedit

 
$ gedit ~/.mailrc
或者
$ vim ~/.mailrc

这将打开一个空白文档,你只需把下面大写部分改为你的个人设置后粘帖即可。因为我只想使用gmail account,所以我没有设置isp account。

 
# set smtp for nail
# ref: http://ubuntuforums.org/showpost.php...94&postcount=6 
# docs: http://msmtp.sourceforge.net/doc/msm...guration-files 
# isp account (default)
# $ nail -s "subject line" -a /path/file recipient@email.com < /path/body.txt
set from="YOURNAME@ISP.COM"
set sendmail="/usr/bin/msmtp"
set message-sendmail-extra-arguments="-a isp"
# gmail account
# $ nail -A gmail -s "subject line" -a /path/file recipient@email.com < /path/body.txt
account gmail {
set from="YOURNAME@gmail.com (YOURNAME)"
set sendmail="/usr/bin/msmtp"
set message-sendmail-extra-arguments="-a gmail"
}

搞定!!!

发送测试:

 
$ echo -e "testing email from the command line" > /tmp/test_email
$ nail -A gmail -s "gmail test" YOURNAME@gmail.com < /tmp/test_email

Log文件在:/tmp/msmtp.log

免责声明:文章转载自《ubuntu下使用mutt+msmtp发送邮件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇OC文件操作(2)Spring IOC的三种主要注入方式?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Gmail使用全攻略

感谢ViperGTS同学给我一个gmail的invitation! 在这“免费午餐”越来越少的年代,能有一个1G的免费邮箱着实不易! 昨天顺利申请到了一个gmail邮箱,发现还是跟其他邮箱有一些不同点,找了一篇有关gmail的使用攻略,希望能对申请到的朋友有所帮助,没有申请到的朋友也可以看一下,说不定我有了邀请就可以发给大家了:) ( 以下系我从中国博客转...

常用邮箱SMTP服务器地址大全

常用邮箱SMTP服务器地址大全 阿里云邮箱(mail.aliyun.com) POP3服务器地址:pop3.aliyun.com(SSL加密端口:995;非加密端口:110) SMTP服务器地址:smtp.aliyun.com(SSL加密端口:465;非加密端口:25) IMAP服务器地址:imap.aliyun.com(SSL加密端口:993;非加...

图文讲解如何在outlook里设置绑定Gmail企业邮箱教程

上一篇,我们讲到Gmail绑定域名开通企业邮箱    点击下面链接浏览如何在Gmail中绑定域名开通企业邮箱 http://www.zuogewangzhan.com/mail/58.html 已经可以实现在线收发邮件,但是对于一些使用OutLook之类的邮件客户端收发邮件的客户来说,每次登陆网站显得有些不够方便,本文就来讲解如何在outlook里面设置G...

【计算机网络】应用层

目录 网络应用模型 客户/服务器模型 P2P模型 域名系统(DNS) 层次域名空间 域名服务器 域名解析 文件传输协议(FTP) 工作原理 连接 电子邮件 电子邮件系统的组成结构 多用途网络邮件扩充(MIME) 简单邮件传输协议(SMTP) 邮局协议(POP3) 网际报文存取协议(IMAP) 基于万维网的电子邮件 万维网(WW...

Golang邮件发送

简介: 电子邮件的应用非常广泛,常见在某网站注册一个账号,自动发送一封激活邮件,通过邮件找回密码,自动批量发送活动信息等等。这些应用不可能与平时发邮件一样,先打开浏览器,登录邮箱在发送。 如何通过Go语言代码来创建电子邮件,并连接邮件服务器发送邮件? 电子邮件在网络中传输和网页一样需要遵守特定的协议。常见的电子邮件协议包括:SMTP,POP3,LMAP。其...

ubuntu使用mailx利用SMTP发送邮件

转载:http://www.blogjava.net/jasmine214--love/archive/2010/10/09/334102.html Linux下mail利用外部邮箱发送邮件的方法: 1、下载安装mailx sudo apt-get install heirloom-mailx 2、修改/etc/nail.rc (/etc/mail.rc)...