java Mail如何发送邮件
Posted coder-zhou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java Mail如何发送邮件相关的知识,希望对你有一定的参考价值。
1.应用场景:在系统需要发送与用户相关的消息时,而用户不在线,可以采取发送邮件的方式,使用户了解最新的系统情况 或者发送验证码等验证场景
2.实验环境 主要使用mail.jar和activation.jar两个包
3.使用一份简单的邮件
public void sendMail() throws AddressException, MessagingException{ /* * 1.得到session */ Properties properties=new Properties(); properties.setProperty("mail.host", "smtp.163.com"); properties.setProperty("mail.smtp.auth", "true"); //账户信息测试 Authenticator auth =new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("zhou_s1", "xxx"); //这里是账户名和密码 } }; Session session =Session.getInstance(properties,auth); /* * 2.创建消息message */ MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress("[email protected]"));//设置发件人 message.setRecipients(RecipientType.TO, "[email protected]");//设置收件人 //message.setRecipients(RecipientType.CC, "[email protected]");//设置抄送 //message.setRecipients(RecipientType.BCC, "[email protected]");//暗送给谁 message.setSubject("这一份来自周松测试的垃圾邮件--javamail"); message.setContent("test test test !!!","text/html;charset=utf-8"); /* * 3.发送 */ Transport.send(message); }
4.一份带有附件的邮件
public void sendMailMore() throws AddressException, MessagingException, IOException{ /* * 1.得到session */ Properties properties=new Properties(); properties.setProperty("mail.host", "smtp.163.com"); properties.setProperty("mail.smtp.auth", "true"); //账户信息测试 Authenticator auth =new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("zhou_s1", "xxx"); } }; Session session =Session.getInstance(properties,auth); /* * 2.创建消息message */ MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress("[email protected]"));//设置发件人 message.setRecipients(RecipientType.TO, "[email protected]");//设置收件人 message.setSubject("这是一份含有附件的邮件---测试使用--javamail"); /******************************************************/ /* * 附件的主体流程 附件含有多个组成部分 简称多部件 * */ MimeMultipart list =new MimeMultipart(); //1.邮件主要内容 MimeBodyPart MimeBodyPart part1 =new MimeBodyPart(); //1.1.内容 part1.setContent("一份含有附件的测试邮件", "text/html;charset=utf-8"); //1.2将主体添加到邮件中去 list.addBodyPart(part1); //2.1.邮件附件里面的内容 MimeBodyPart part2 =new MimeBodyPart(); //2.2.附件 File file =new File("G:/JAVAtest/Merge.mp3"); part2.attachFile(file); part2.setFileName(MimeUtility.encodeText("Merge.mp3")); //2.3将主体添加到邮件中去 list.addBodyPart(part2); //3.最后将多部件添加到消息中去 message.setContent(list); //发送 Transport.send(message); }
测试完毕!
以上是关于java Mail如何发送邮件的主要内容,如果未能解决你的问题,请参考以下文章
javax.mail.SendFailedException 为啥当我尝试通过我的 java 代码发送电子邮件时收到上述异常?