IT技术互动交流平台

sendmail命令行发邮件利器

来源:IT165收集  发布日期:2014-11-24 20:49:00

前段时间公司的一个项目刚刚上线,为了每天都能够查看系统中昨天出现的问题等各种关键信息,开发人员每天都远程登陆系统拿到产生的系统日志等其他文件,由于远程登陆还需要VPN,使用起来相当繁琐,并且效率不高,为此花掉的时间也挺多的.想了一想如何解决这个问题,得出的结论这种重复无意义的事情还是交给计算机做比较合适,于是花了周末的一个下午的时间使用Java编写了支持在命令行发送邮件的jar包,然后通过bat脚本调用制作为windows的计划任务(Scheduler, 注:系统部署在windows server之上)

在linux命令行中也有一个名为sendmail的程序可以支持命令行发送邮件,这里我也无耻的沿用这个名字.本文主要简单介绍一下该程序的使用方法,我相信可能会有朋友需要这个.

既然是jar包,运行时自然要使用java环境,先看帮助文档:

在命令行中敲入如下命令:

java -jar sendmail.jar -help


好了,既然看了帮助文档那么我们就先按照帮助文档的example来发送一份邮件到我们各自的邮箱里面,在命令行输入以下命令:

java -jar sendmail.jar -t kmter@live.com -s "HelloSendMail" -b "Hi,shawyeok: This is first email from command line!"

当发送成功时命令行会打印出如下信息:

sendmail to [kmter@live.com] success

通过以上的命令我发送一封邮件到kmter@live.com这个邮箱里面,这是我的个人邮箱,如果大家在使用过程中发现了BUG请用这个邮箱和我联系,谢谢.下面我登陆到我的邮箱里面发现邮件的确已经收到了.


通过上面的帮助文档和练习我们可以看到默认情况下该程序的发送者为sendmailcmd@163.com,这是本人为了供大家使用方便添加的默认用户,倘若你要使用该程序发送一些较为私密的信息,本人还是建议您修改一下,修改起来很简单,使用WinRAR或7Zip等压缩软件打开sendmail.jar,修改其中根目录下的default.properties文件的几个属性即可,修改方法如下图所示


上面的有一点需要注意,就是hostnameport那里,每个email服务商的地址都不一样,如果你不太清楚该写成什么,可以在网上搜索一下你的email服务商的SMTP服务器地址,当然也可以单独申请一个163邮箱,这样一来hostname和port这里保持不变就可以了.

上面大致介绍了怎么样使用这个程序,但离实际应用还有一定距离,下面我就演示一下我在工作中对该程序的实际应用情况.

在本文开始处我已经对我们的应用情况作了简单描述,我们需要每天审查服务器产生的日志信息,于是编写了一个bat脚本,内容如下:

@ECHO off

IF "%JAVA_HOME%" == "" GOTO SETCMDPATH

IF NOT "%JAVA_HOME%" == "" GOTO SETSENDMAILPATH

:SETCMDPATH

SET JAVA_HOME="C:\Program Files\Java\jdk1.7.0_51"

:SETSENDMAILPATH

SET SENDMAIL_PATH="C:\Users\Shawyeok\Desktop\sendmail.jar"

:EXECUTE

"%JAVA_HOME%\bin\java.exe" -jar "%SENDMAIL_PATH%" -t "kmter@live.com" -s "WAS LOG REZ喎"http://www.it165.net/pro/pkqt/" target="_blank" class="keylink">QT1JUJnF1b3Q7IC1hICZxdW90O0Q6XFByb2dyYW0gRmlsZXNcSUJNXFdlYlNwaGVyZVxBcHBTZXJ2ZXJccHJvZmlsZXNcQXBwU3J2MDFcbG9ncyZxdW90OyAtYiAmcXVvdDtUaGlzIGlzIFRvZGF5IFdBUyBMT0chIENUUkVBVCBCWSBTSEFXWUVPSyEmcXVvdDs8L3A+CjxwPtXiwO+1xL3Fsb63x7OjvPK1pSzK18/IvOyy6cHLz7XNs8rHt/HJ6NbDwctKQVZBX0hPTUW7t76zseTBvyzIu7rzvatzZW5kbWFpbLXEyKvCt762yejWw86q0ru49rHkwb8s1eLR+dK7wLS199PDvs23x7Ojt72x48HLLNTaRVhFQ1VURdbQLM7SvasmcXVvdDtEOlxQcm9ncmFtIEZpbGVzXElCTVxXZWJTcGhlcmVcQXBwU2VydmVyXHByb2ZpbGVzXEFwcFNydjAxXGxvZ3MmcXVvdDvV4rj2zsS8/rzQ1/fOqri9vP7M7bzTtb24w9PKvP7W0MHLLLjDs8zQ8rvh19S2r72ruMPOxLz+vNDRucv1KMS/x7C99tans9Z6aXDRucv1t73KvSnOqtK7uPZ6aXCw/C48L3A+CjxwPrrDwcssz9bU2ta00NC9xbG+0rLT0MHLLM7Sw8fU9cO0yMPG5NfUtq/Uy9DQxNg/d2luZG93c8+1zbPW0NPQVGFzayBTY2hlZHVsZXIovMa7rsjOzvEpLNTaPHN0cm9uZz6/2NbGw+aw5SAmZ3Q7ILjfvLa53MDtuaS+3zwvc3Ryb25nPtbQv8nS1LTyv6q4w7mkvt8sz8LD5tKq1/a1xL7NysfJ6NbD0ru49raoyrHIzs7xvs3Q0MHLLMno1sO6w7Slt6LG97rN1rTQ0Lav1/e+zdDQLLfHs6O88rWlLgo8L3A+CjxwPjxpbWcgc3JjPQ=="http://www.it165.net/uploadfile/files/2014/1124/20141124183730943.png" alt="">

上面的截图来自我的邮箱, 这样一来, 就省去了很多时间, 就像每天机器把自己的工作内容汇报上来一样, 感觉是不是挺好呢! 快试试吧.

sendmail下载地址: http://pan.baidu.com/s/1pJlwWAJ

sendmail源码已托管在GitHub上: https://github.com/Shawyeok/sendmail

注:当您遇到BUG时,就是我能够改善程序的好机会,请与我联系(kmter@live.com),或者直接提交补丁到GitHub上也是不错的选择.

Tag标签: 利器   命令   邮件  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规