JavaMail学习(带附件发送)
以前觉得JavaMail是一种很高大上玩意,所以就在网上找了关于JavaMail的知识,其实也没想像中那么高大上,我就只学习了发送邮件的部分,那么我就来贴上自己写的代码啦,具体实现代码有详细的解释了
第一个是发送普通邮件
// 发送普通邮件 public static void sendTextmail() throws MessagingException { // 第一步.获取Session(注:这个是javax.mail下的类) /* * public static Session getInstance(java.util.Properties props, Authenticator authenticator) * * props需要指定两个键值,一个是指定服务器主机名,另一个是指定是否需要认证!这里设置时必须验证true * authenticator是一个接口,表示认证器,就是客户端的身份登陆。我们需要自己来实现这个接口,实现这个接口需要使用账户和密码 */ Properties props = new Properties(); props.setProperty("mail.host", "smtp.sohu.com"); props.setProperty("mail.smtp.auth", "true"); Authenticator auth = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("lishun1005", "leason841553484"); } }; Session session = Session.getInstance(props, auth); // 第二步:创建MimeMessage对象 MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress("[email protected]"));// 设置发信人 msg.setRecipients(RecipientType.TO, "[email protected]");// 发送,可以发给多个人,相当于群发 msg.setRecipients(RecipientType.BCC, "[email protected]");// 暗送(只发给一个人) msg.setRecipients(RecipientType.CC, "[email protected]");// 抄送人: msg.setSubject("发送给王尼玛");// 设置邮件标题; msg.setContent("普通邮件", "text/plan;charset=utf-8");// 设置正文和正文的编码方式 // 发送邮件 Transport.send(msg); }
第二个是带附件的发送
// 发带附件的邮件 public static void sendTextAndFilemail() throws MessagingException, IOException { Properties props = new Properties(); props.setProperty("mail.host", "smtp.sohu.com"); props.setProperty("mail.smtp.auth", "true"); Authenticator auth = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("lishun1005", "leason841553484"); } }; Session session = Session.getInstance(props, auth); MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress("[email protected]"));// 设置发信人 msg.setRecipients(RecipientType.TO, "[email protected]"); msg.setSubject("发送给王尼玛"); /* * 当发送包含附件的邮件时,邮件体就为多部件形式! 1. 创建一个多部件的部件内容!MimeMultipart * MimeMultipart就是一个集合,用来装载多个主体部件! 2. 我们需要创建两个主体部件,一个是文本内容的,另一个是附件的。 * 主体部件叫MimeBodyPart 3. 把MimeMultipart设置给MimeMessage的内容!这段内容是在网上找到的学习资料,自己感兴趣自己就再理解一番 */ MimeMultipart list = new MimeMultipart();// 创建多部分内容 // 创建MimeBodyPart MimeBodyPart part1 = new MimeBodyPart(); // 设置文本的内容 part1.setContent("带附件的邮件", "text/html;charset=utf-8"); // 把文本添加到集合中 list.addBodyPart(part1); // 创建MimeBodyPart MimeBodyPart part2 = new MimeBodyPart(); part2.attachFile(new File("D:/王尼玛.jpg"));// 设置附件的内容 part2.setFileName(MimeUtility.encodeText("王尼玛.jpg"));// 设置显示的文件名称,其中encodeText用来处理中文乱码问题 list.addBodyPart(part2); msg.setContent(list);// 把它设置给邮件作为邮件的内容。 // 发送邮件 Transport.send(msg); }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。