在aix环境中用java实现自动发邮件告警
来源:互联网 发布:淘宝潮男鞋店铺推荐 编辑:程序博客网 时间:2024/04/30 18:25
最近需要在aix环境中发邮件出来告警,这里用java实现了需求;这里将过程和实现的代码以及需要的包都描述下。
在aix中查看jdk的版本 java -version查到是1.5的版本;在win7环境下安装1.5的jdk。
编码如下:
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package mailtest;/** * * @author Administrator */public class MailMain { /** * @param args the command line arguments */ public static void main(String[] args) { String subject = "告警"; String content = args[0]; Mail mail = new Mail(); mail.setHost("smtp.163.com"); // 设置邮件服务器,如果不用163的,自己找找看相关的 mail.setSender("******@163.com"); mail.setReceiver("*****@163.com"); // 接收人 mail.setUsername("*****@163.com"); // 登录账号,一般都是和邮箱名一样吧 mail.setPassword("*****"); // 发件人邮箱的登录密码 mail.setSubject(subject+":"+content); mail.setMessage(content); new MailUtil().send(mail); } }
package mailtest;/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. *//** * * @author Administrator *///import java.io.Serializable; /** * Mail属性实体 */ @SuppressWarnings("serial") public class Mail { public static final String ENCODEING = "UTF-8"; private String smtp; // 服务器地址 private String sender; // 发件人的邮箱 private String receiver; // 收件人的邮箱 private String name; // 发件人昵称 private String username; // 账号 private String password; // 密码 private String subject; // 主题 private String message; // 信息(支持HTML) private String host; public String getHost() { return host; } public void setHost(String host) { this.host = host; } public String getSender() { return sender; } public void setSender(String sender) { this.sender = sender; } public String getReceiver() { return receiver; } public void setReceiver(String receiver) { this.receiver = receiver; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package mailtest;/** * * @author Administrator */import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; /** * 邮件发送工具实现类 * */ public class MailUtil { public boolean send(Mail mail) { HtmlEmail email = new HtmlEmail(); try { // 这里是SMTP发送服务器的名字:163的如下:"smtp.163.com" email.setHostName(mail.getHost()); // 字符编码集的设置 email.setCharset(Mail.ENCODEING); // 收件人的邮箱 email.addTo(mail.getReceiver()); // 发送人的邮箱 email.setFrom(mail.getSender(), mail.getName()); // 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码 email.setAuthentication(mail.getUsername(), mail.getPassword()); // 要发送的邮件主题 email.setSubject(mail.getSubject()); // 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签 email.setMsg(mail.getMessage()); // 发送 email.send(); return true; } catch (EmailException e) { e.printStackTrace(); return false; } } }
这里请注意:由于1.5的jdk版本没有datasource包,需要在lib中添加activation.jar包;一共需要3个jar包: commons-email-1.4.jar; mail.jar; activation.jar 我会把这三个包存在csdn中供大家下载;1.8jdk版本不需要activation.jar
在aix中这样调用:
java -cp /home/monitor/mailtest/lib/activation.jar:/home/monitor/mailtest/lib/commons-email-1.4.jar:/home/monitor/mailtest/lib/mail.jar -jar /home/monitor/mailtest/MailMain.jar "hello world"
我这里的“hello world"是测试,这样就会发送主体和内容为hello world的邮件给提供的地址了。
-cp意思是 -classpath的缩写,需要把需要调用到的jar包的绝对路径表示上,-jar就直接是编译工具构建出的jar包了。
需要注意的是生产环境可能会报无法解析主机的错误,这多半是因为生产环境没有配置dns造成的,这样好办,只需要在nslookup中找到smtp.163.com的ip替换到程序中就行了。
在需要告警的脚本中直接引用上面的句柄就可以发邮件了。
- 在aix环境中用java实现自动发邮件告警
- java实现后台自动发邮件功能
- java实现后台自动发邮件功能
- java实现后台自动发邮件功能
- java实现后台自动发邮件功能
- java 实现 自动发邮件功能
- 在VBA中用Jmail发邮件代码
- 用logstash发邮件告警
- java实现发邮件
- Java 实现发邮件
- ASP实现自动发邮件
- C#实现自动发邮件
- postfix 实现自动发邮件
- 用Java自动发邮件
- java实现自动发邮件并携带附件
- PinPoint实现邮件告警
- 在iterm中用expect脚本实现ssh, telnet对aix, linux的自动登录
- python实现自动监控网站并发送邮件告警
- 解决透明NavigationBar底部出现莫名其妙横线问题
- java面向对象之向上转型和向下转型
- SIMD(MMX/SSE/AVX)变量命名规范心得
- ACE日志系统
- iOS 怎样通过UDP发送广播寻找设备,拿到ip地址,然后用TCP 连接设备
- 在aix环境中用java实现自动发邮件告警
- C++之tinyXML的使用详解
- Codeforces-Gadget Hackwrench-LCA最近公共祖先
- TiXmlHandle的使用-简化tinyxml的代码
- tinyxml源码解析(中)
- tinyxml源码解析(上)
- ADT的配置环境
- STL使用总结
- STL之二:vector容器用法详解