本来是以做数据挖掘的目的进去哪网的,结构却成了系统开发。。。
不过还是比较认真的做了三个月,老师很认同我的工作态度和成果。。。
实习马上就要结束了,总结一下几点之前没有注意过的变成习惯和问题,分享给大家。
同时打个广告:去哪网内审部招JavaWeb开发实习生,时间非常自由,每周一天、周六周日甚至都可以,时间充裕的小伙伴给我留言啊,挣个零花钱,还能长点经验。。。。(保研的、想工作的大四狗最合适不过了。。。)
接上一篇:http://blog.csdn.net/mmc2015/article/details/47685369
需要的包:
activation.jar:http://download.csdn.net/detail/mmc2015/9009847
mail.jar:http://download.csdn.net/detail/mmc2015/9009839
补充连接数据库的包:mysql-connector-java-5.1.27-bin.jar:
不介绍过多知识点,直接上代代码:
public static void sendMail() throws Exception {
Properties prop = new Properties();
prop.setProperty("mail.host", "smtp.qunar.com");
prop.setProperty("mail.transport.protocol", "smtp");
prop.setProperty("mail.smtp.auth", "true");
//使用JavaMail发送邮件的5个步骤
//1、创建session
Session session = Session.getInstance(prop);
//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
//2、通过session得到transport对象
Transport ts = session.getTransport();
//3、使用邮箱的用户名和密码连上邮件服务器,发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,用户名和密码都通过验证之后才能够正常发送邮件给收件人。
ts.connect("smtp.qunar.com", "你的邮箱账号", "你的密码");
//4、创建邮件(只包含文本)
//Message message = createSimpleMail(session);
//4、创建邮件(带附件)
Message message = createAttachMail(session);
//5、发送邮件
ts.sendMessage(message, message.getAllRecipients());
ts.close();
}
//创建一封只包含文本的邮件
public static MimeMessage createSimpleMail(Session session) throws Exception {
//创建邮件对象
MimeMessage message = new MimeMessage(session);
//指明邮件的发件人
message.setFrom(new InternetAddress("<span style="font-family: Arial, Helvetica, sans-serif;">你的邮箱账号</span><span style="font-family: Arial, Helvetica, sans-serif;">@qunar.com"));</span>
//指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
message.setRecipient(Message.RecipientType.TO, new InternetAddress("收件人邮箱账号@qunar.com"));
//邮件的标题
message.setSubject("只包含文本的简单邮件");
//邮件的文本内容,为了避免邮件正文中文乱码问题,需要使用charset=UTF-8指明字符编码
message.setContent("Hello Mail!", "text/html;charset=UTF-8");
//返回创建好的邮件对象
System.out.println(message);
return message;
}
//创建一封包含附件的邮件
public static MimeMessage createAttachMail(Session session) throws Exception {
//创建邮件对象
MimeMessage message = new MimeMessage(session);
//指明邮件的发件人
message.setFrom(new InternetAddress("<span style="font-family: Arial, Helvetica, sans-serif;">你的邮箱账号</span><span style="font-family: Arial, Helvetica, sans-serif;">@qunar.com"));</span>
//指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
message.setRecipient(Message.RecipientType.TO, new InternetAddress("<span style="font-family: Arial, Helvetica, sans-serif;">收件人邮箱账号</span><span style="font-family: Arial, Helvetica, sans-serif;">@qunar.com"));</span>
//邮件的标题
message.setSubject("包含附件的邮件");
//创建邮件正文,为了避免邮件正文中文乱码问题,需要使用charset=UTF-8指明字符编码
MimeBodyPart text = new MimeBodyPart();
String mailText = "使用JavaMail创建的带附件的邮件\n";
mailText = "定时任务,时间为:12:00:00\n";
text.setContent(mailText, "text/html;charset=UTF-8");
//创建邮件附件
MimeBodyPart attach = new MimeBodyPart();
//DataHandler dh = new DataHandler(new FileDataSource("C:\\Users\\userName\\Desktop\\test.xlsx"));
String nowDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String serverRealRootPath = GetServerRealPathUtil.getRootPath();
String fileName = <strong>serverRealRootPath</strong>+<strong>File.separator</strong>+nowDate+".xlsx";//这个函数还记得吧。。。。。
DataHandler dh = new DataHandler(new FileDataSource(fileName));
attach.setDataHandler(dh);
attach.setFileName(dh.getName());
//创建容器描述数据关系(附件和正文内容本质是一种容器的包含关系,描述好了就ok)
MimeMultipart mp = new MimeMultipart();
mp.addBodyPart(text);
mp.addBodyPart(attach);
mp.setSubType("mixed");
message.setContent(mp);
message.saveChanges();
//返回创建好的邮件对象
System.out.println(message);
return message;
}