去哪网实习总结:定时发送邮件(JavaWeb)

本来是以做数据挖掘的目的进去哪网的,结构却成了系统开发。。。

不过还是比较认真的做了三个月,老师很认同我的工作态度和成果。。。

实习马上就要结束了,总结一下几点之前没有注意过的变成习惯和问题,分享给大家。

同时打个广告:去哪网内审部招JavaWeb开发实习生,时间非常自由,每周一天、周六周日甚至都可以,时间充裕的小伙伴给我留言啊,挣个零花钱,还能长点经验。。。。(保研的、想工作的大四狗最合适不过了。。。)

接上一篇:

需要的包:

activation.jar:

mail.jar:

补充连接数据库的包: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、创建sessionSession 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;}

版权声明:本文为博主原创文章,未经博主允许不得转载。

人生伟业的建立,不在能知,乃在能行。

去哪网实习总结:定时发送邮件(JavaWeb)

相关文章:

你感兴趣的文章:

标签云: