之前的时候做过一个抓取网页内容,发送邮件的小项目,但是,之后很长时间没做,再次摸起来很多东西都忘了,所以,这次趁着整理好了,记录一下。
public class test {
private static DefaultHttpClient client = null;
public static void loginSSO(String username, String password, String fp) {
System.out.println("login begin");
try{
//登录
client = new DefaultHttpClient(new PoolingClientConnectionManager());
HttpGet get = new HttpGet(String.format("http://****/sso/login?username=%s&password=%s&fp=%s", username, URLEncoder.encode(password, "UTF-8"), fp));//fp是我的网站的设备登录号
HttpResponse response = client.execute(get);
System.out.println("响应码:" + response.getStatusLine().getStatusCode());
}
catch (IOException ioe) {
ioe.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
System.out.println("login end");
}
public static String pageResult(){
try {
HttpGet get = new HttpGet("http://**/dailyStas.json?orgEid=*****&startSubmitTime=2018-04-13&endSubmitTime=2018-04-13");
HttpResponse response = client.execute(get);
// System.out.println("回应:" + response2.getStatusLine().getStatusCode());
HttpEntity entity = response.getEntity();
String PageResource = EntityUtils.toString(entity);
System.out.println("PageResource结果:" + PageResource);
return PageResource;
}catch(IOException ioe){
ioe.printStackTrace();
}
return "-1";
}
public static void sentEmail(String result){
try {
/* Properties props = new Properties();
props.put("smtp.jj.local", "mail.jj.com");
props.put("mail.smtp.port", 25);
props.put("mail.smtp.auth", "true");
Transport transport = null;
Session session = Session.getDefaultInstance(props, null);
transport = session.getTransport("smtp");
transport.connect("smtp.jj.local", "**@jj.com", "密码");
MimeMessage msg = new MimeMessage(session);
msg.setSentDate(new Date());
InternetAddress fromAddress = new InternetAddress("**@jj.com");
msg.setFrom(fromAddress);
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("**@jj.com"));
msg.setText("Email sent test!", "UTF-8");
msg.setSubject("未填人员名单", "UTF-8");
msg.saveChanges();
transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO));
System.out.println("邮件发给**");
transport.close();*/
//以上是司内代码
/*Properties properties = new Properties();
properties.put("mail.transport.protocol", "smtp");// 连接协议
properties.put("mail.smtp.host", "smtp.qq.com");// 主机名
properties.put("mail.smtp.port", 465);// 端口号
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.ssl.enable", "true");// 设置是否使用ssl安全连接 ---一般都使用
properties.put("mail.debug", "true");// 设置是否显示debug信息 true 会在控制台显示相关信息
// 得到回话对象
Session session = Session.getInstance(properties);
// 获取邮件对象
Message message = new MimeMessage(session);
// 设置发件人邮箱地址
message.setFrom(new InternetAddress("***@qq.com"));
// 设置收件人邮箱地址
message.setRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress("***@qq.com")});
//message.setRecipient(Message.RecipientType.TO, new InternetAddress("xxx@qq.com"));//一个收件人
// 设置邮件标题
message.setSubject("***");
// 设置邮件内容
message.setText("邮件内容邮件test");
// 得到邮差对象
Transport transport = session.getTransport();
// 连接自己的邮箱账户
transport.connect("****@qq.com", "***");// 密码为QQ邮箱开通的stmp服务后得到的客户端授权码
// 发送邮件
transport.sendMessage(message, message.getAllRecipients());
System.out.println("邮件发给:***");
transport.close();*/
//这是参考的QQ代码
Properties properties = new Properties();
properties.put("mail.smtp.host", "smtp.qq.com");// 主机名
properties.put("mail.smtp.port", 465);// 端口号
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.ssl.enable", "true");// 设置是否使用ssl安全连接 ---一般都使用
properties.put("mail.debug", "true");// 设置是否显示debug信息 true 会在控制台显示相关信息
Transport transport = null;
Session session = Session.getDefaultInstance(properties, null);
transport = session.getTransport("smtp");
//transport.connect("mail.jj.com", "***@jj.com", "****");
transport.connect("***@qq.com", "你的设备授权码");
MimeMessage message = new MimeMessage(session);
message.setSentDate(new Date());
message.setFrom(new InternetAddress("****@qq.com"));
message.setRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress("****@qq.com")});
message.setText(result,"UTF-8");
message.setSubject("结果","UTF-8");
message.saveChanges();
transport.sendMessage(message, message.getAllRecipients());
System.out.println("邮件发给:***");
transport.close();
//调整后的代码,其实与之前的没差
}catch(NoSuchProviderException e){
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
public static void main(String args[]){
loginSSO("用户名","密码","设备指纹");
String rs=result();
sentEmail(rs);
}
}
这里使用的包是javax.mail1.6,Java是1.8版本的