java连接VPN 发送邮件
来源:互联网 发布:mac系统iso镜像百度云 编辑:程序博客网 时间:2024/06/11 18:23
系统中需要两个包
1:classes12.jar
classes12 自己找吧!!!
2:mail.jar
下载地址:http://hi.csdn.net/attachment/201103/21/0_1300695455MNRi.gif
下载后更名为 mail.jar
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class SendMail {
public static String mailAddress ="xxxx@163.com";
public static String mailCount ="xxxx";
public static String mailPassword ="xxxx";
public static String mailServer ="smtp.163.com";
public static String sendMail ="xxxx@gmai.com";
/**
* 发送简单邮件
* @param str_from:发件人地址
* @param str_to:收件人地址
* @param str_title:邮件标题
* @param str_content:邮件正文
*/
public static boolean send(String str_from,String str_to,String str_title,String str_content) {
// str_content="<a href='www.163.com'>html元素</a>"; //for testing send html mail!
try {
//建立邮件会话
Properties props=new Properties(); //用来在一个文件中存储键-值对的,其中键和值是用等号分隔的,
//存储发送邮件服务器的信息
props.put("mail.smtp.host",mailServer);
//同时通过验证
props.put("mail.smtp.auth","true");
//根据属性新建一个邮件会话
Session s=Session.getInstance(props);
s.setDebug(false); //有他会打印一些调试信息。
//由邮件会话新建一个消息对象
MimeMessage message=new MimeMessage(s);
//设置邮件
InternetAddress from= new InternetAddress(str_from); //pukeyouxintest2@163.com
message.setFrom(from); //设置发件人的地址
//
// //设置收件人,并设置其接收类型为TO
InternetAddress to=new InternetAddress(str_to); //pukeyouxintest3@163.com
message.setRecipient(Message.RecipientType.TO, to);
//设置标题
message.setSubject(str_title); //java学习
//设置信件内容
// message.setText(str_content); //发送文本邮件 //你好吗?
message.setContent(str_content, "text/html;charset=gbk"); //发送HTML邮件 //<b>你好</b><br><p>大家好</p>
//设置发信时间
message.setSentDate(new Date());
//存储邮件信息
message.saveChanges();
//发送邮件
Transport transport=s.getTransport("smtp");
//以smtp方式登录邮箱,第一个参数是发送邮件用的邮件服务器SMTP地址,第二个参数为用户名,第三个参数为密码
transport.connect(mailServer,mailCount,mailPassword);
//发送邮件,其中第二个参数是所有已设好的收件人地址
transport.sendMessage(message,message.getAllRecipients());
transport.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public static boolean Runexec(String args,String isOk)
{
boolean runOK = false;
Process process = null;
BufferedReader br = null;
String line = "";
//"已连接"
try
{
process = Runtime.getRuntime().exec(args);//"Rasdial nmtest /disconnet ");//cdsts1 nmdws");
br = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = br.readLine()) != null)
{
System.out.println(line);
if (line.indexOf(isOk)>=0)
{
runOK = true;
}
}
process.waitFor();
}
catch (Exception e){e.printStackTrace();}
finally
{
if (br != null)
{
try {br.close();} catch (Exception e) { e.printStackTrace();}
}
}
System.out.println(runOK);
return runOK;
}
public static void main(String[] args) {
String getEmail = "xxxx@xxxx.com";
//初始化参数
for (int iii = 0; iii < args.length ; iii++)
{
if (iii==0)mailAddress=args[iii];
if (iii==1)mailCount=args[iii];
if (iii==2)mailPassword=args[iii];
if (iii==3)mailServer=args[iii];
if (iii==4)getEmail=args[iii];
}
System.out.println("mailAddress="+mailAddress);
System.out.println("mailCount="+mailCount);
System.out.println("mailPassword="+mailPassword);
System.out.println("mailServer="+mailServer);
System.out.println("getEmail="+getEmail);
//连接VPN
int ErrCnt = 0;
while (true)
{
ErrCnt = 0;
System.out.println("----正在连接nmtest的VPN-----");
while (Runexec("Rasdial nmtest cdsts1 nmdws","已连接") == false)
{
System.out.println("连接失败!");
try{Thread.sleep(5000);}catch(Exception e){
e.printStackTrace();}
ErrCnt++;
if (++ErrCnt > 3)break;
}
if (ErrCnt > 3)continue;
System.out.println("连接成功!");
System.out.println("----正在获取报表数据-----");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月");
Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE,1);//设为当前月的1号
lastDate.add(Calendar.MONTH,-1);//减一个月,变为下月的1号
String str_ym=sdf.format(lastDate.getTime());
String cont = "";
while (cont == null || cont.equals(""))
{
try
{
cont = conn.getHTML(str_ym);
}
catch(Exception e)
{
e.printStackTrace();
}
if (cont == null || cont.equals(""))System.out.println("获取报表数据失败:");
try{Thread.sleep(5000);}catch(Exception e){e.printStackTrace();}
if (++ErrCnt > 3)break;
}
if (ErrCnt > 3)continue;
System.out.println("获取报表数据成功!");
//断开VPN
System.out.println("----正在断开VPN-----");
while (Runexec("Rasdial /DISCONNECT","命令已完成") == false)
{
System.out.println("断开VPN失败:");
try{Thread.sleep(5000);}catch(Exception e){e.printStackTrace();}
}
System.out.println("断开VPN成功!");
System.out.println("----正在发送邮件-----");
//上Internet 发送邮件
System.out.println("统计数据:"+str_ym + "");
while (SendMail.send(mailAddress,getEmail,str_ym + "",cont)== false)
{
System.out.println("发送邮件失败:");
try{Thread.sleep(5000);}catch(Exception e){e.printStackTrace();}
ErrCnt++;
if (++ErrCnt > 3)break;
}
if (ErrCnt > 3)continue;
System.out.println("发送邮件成功,操作完成!");
try{Thread.sleep(5000);}catch(Exception e){}
return;
}
}
}
import java.lang.*;
import java.text.DateFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.DriverManager;
import java.sql.SQLException;
public class conn
{
public static String getHTML(String cnDate)
{
String drv=null;
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
int rowcount=0;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch (java.lang.ClassNotFoundException e)
{
System.out.println(new Date().toString() + ":mydb(): " + e.getMessage());
}
try
{
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@IP:Port:SID", "NAME", "PWD");
}
catch (SQLException ex)
{
System.out.println(new Date().toString() + ":conn:"+ex.getMessage());
}
if (conn!=null)
System.out.println(new Date().toString() + ":connection successful");
else
System.out.println(new Date().toString() + ":connection failure");
try
{
stmt=conn.createStatement();
}
catch (SQLException ex)
{
System.out.println(new Date().toString() + ":createStatement();"+ex.getMessage());
}
String tmpsql = "";
String resStr = "<TABLE style=/"font-size:14px/" border = 1 cellspacing=/"0/" cellpadding=/"0/">"
+"<tr><td COLSPAN=25><H1>"+cnDate+"使用情况统计</H1></td></tr>";
try
{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE,1);//设为当前月的1号
lastDate.add(Calendar.MONTH,-1);//减一个月,变为下月的1号
String str_ym=sdf.format(lastDate.getTime());
tmpsql = "select * from dual";
rs=stmt.executeQuery(tmpsql);
///////////////////////////////////////////////////
try
{
String tmpstr2 ="";
while (rs.next())
{
resStr +="<tr>";
for (int iCnt = 1; iCnt <= 25; iCnt++)
{
tmpstr2 = rs.getString(iCnt);
if (tmpstr2 == null)
{
tmpstr2 = " ";
}
resStr +="<TD>"+tmpstr2+"</TD>";
}
resStr +="</tr>/n";
}
resStr += "</table>";
}
catch (SQLException ex)
{
System.out.println(new Date().toString() + ":A ERROR is failure" +ex.getMessage());
resStr = "";
}
/////////////////////////////////////////////////////
}
catch (Exception ex)
{
System.out.println(new Date().toString() + ":stmt.excuteQuery();"+ex.getMessage());
resStr = "";
}
try
{
rs.close();
}
catch (Exception ex)
{
System.out.println(new Date().toString() + ":A ERROR is failure" +ex.getMessage());
}
try
{
stmt.close();
}
catch (Exception ex)
{
System.out.println(new Date().toString() + ":A ERROR is failure" +ex.getMessage());
}
try
{
conn.close();
}
catch (Exception ex)
{
System.out.println(new Date().toString() + ":A ERROR is failure" +ex.getMessage());
}
return resStr;
}
}
- java连接VPN 发送邮件
- [java]Java发送邮件
- java 邮件发送 --- 简单的邮件发送
- JAVA发送邮件及springboot发送邮件
- 用java发送邮件
- 用Java发送邮件
- java发送邮件源码
- java发送邮件
- Java发送邮件
- Java发送邮件程序
- java发送Email邮件
- 怎样用java发送邮件
- 利用java发送邮件
- java 邮件发送
- java邮件发送
- java邮件发送
- java定时发送邮件
- java发送邮件代码
- 几个安全研究的的站点
- 用shell脚本监控进程,挂掉后重启
- python中的汉字处理
- 用 Hadoop 进行分布式并行编程, 第 1 部分
- Android 学习笔记(十三):Activity-GridView
- java连接VPN 发送邮件
- C++实现图算法(一)
- 表结构变更用SQL文
- ~~VC下使用Skin++导致右键菜单出错的解决~~
- 数据库中间件的应用实例--部队人员在管理系统中的应用
- 迁移周系列II/II: On Premises 迁移视频
- ExcelPackage: Office Open XML Format file creation
- 1114 Food Cubes 3D BFS
- 利用集群技术实现Web服务器的负载均衡(转:http://zh.linuxvirtualserver.org/node/97)