赞
踩
1.进入设置账户里面,把第一个服务开启
2.点生成授权码,在代码中当成是密码
3.集成到springboot里面,引入依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
4.测试邮箱代码
public static void main(String[] args) { try { Properties prop=new Properties(); //设置qq邮箱服务器、"mail.host", "smtp.qq.com") prop.setProperty("mail.host","stmp.qq.com"); //邮箱发送协议"mail.transport.protocol", "smtp" prop.setProperty("mail.transport.protocol","stmp"); //需要验证用户账号和密码"mail.smtp.auth", "true" prop.setProperty("mail.smpt.protocol","stmp"); //设置SSL加密prop.put("mail.smtp.ssl.enable", "true"); // prop.put("mail.smtp.ssl.socketFactory", sf); MailSSLSocketFactory ssl=new MailSSLSocketFactory(); ssl.setTrustAllHosts(true); prop.put("mail.stmp.protocol","true"); prop.put("mail.stmp.protocol",ssl); //使用javaMail发送邮件的5个步骤 //1.创建整个应用程序所需要的环境信息的session信息 Session session=Session.getDefaultInstance(prop, new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { //发邮件的账号和授权码 return new PasswordAuthentication("",""); }; }); //开启session的debug模式,这样就可以查看程序发送email的运行状态 session.getDebug(); //2.通过session得到transport Transport transport = session.getTransport(); //3.使用邮箱的用户名和授权码链接邮箱服务器 //第一个参数:qq邮箱服务器 //第二个参数:发件人账号 //第三个参数:授权码 transport.connect("","",""); //4.创建邮件 //创建邮件对象 MimeMessage message =new MimeMessage(session); //指明邮件的发件人 message.setFrom(new InternetAddress("")); //指明邮件的收件人 message.setRecipient(Message.RecipientType.TO,new InternetAddress("")); //邮件的标题 message.setSubject(""); //邮件的文本内容 message.setContent("","text/html;charset=UTF-8"); //5.发送邮 transport.sendMessage(message,message.getAllRecipients()); transport.close(); } catch (Exception e) { e.printStackTrace(); System.out.println("有异常,发送失败"); } System.out.println("发送成功"); }
5.把上面的代码改一下就可以发送图片
// //创建邮件对象 // MimeMessage message = new MimeMessage(session); // // //指明邮件的发件人 // message.setFrom(new InternetAddress("")); // // //指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发 // message.setRecipient(Message.RecipientType.TO, new InternetAddress("")); // // //邮件的标题 // message.setSubject("你是一个好人"); // // //邮件的文本内容 // // 准备图片数据 // MimeBodyPart image = new MimeBodyPart(); // DataHandler dh = new DataHandler(new FileDataSource("src/resources/bz.jpg")); // image.setDataHandler(dh); // image.setContentID("bz.jpg"); // // // 准备正文数据 // MimeBodyPart text = new MimeBodyPart(); // text.setContent("这是一封邮件正文带图片<img src='cid:bz.jpg'>的邮件", "text/html;charset=UTF-8"); // // // 描述数据关系 // MimeMultipart mm = new MimeMultipart(); // mm.addBodyPart(text); // mm.addBodyPart(image); // mm.setSubType("related"); // // //设置到消息中,保存修改 // message.setContent(mm); // message.saveChanges();
public static void main(String[] args) throws MessagingException, GeneralSecurityException { //创建一个配置文件保存并读取信息 Properties properties = new Properties(); //设置qq邮件服务器 properties.setProperty("mail.host","smtp.qq.com"); //设置发送的协议 properties.setProperty("mail.transport.protocol","smtp"); //设置用户是否需要验证 properties.setProperty("mail.smtp.auth", "true"); //=================================只有QQ存在的一个特性,需要建立一个安全的链接 // 关于QQ邮箱,还要设置SSL加密,加上以下代码即可 MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); properties.put("mail.smtp.ssl.enable", "true"); properties.put("mail.smtp.ssl.socketFactory", sf); //=================================准备工作完毕 //1.创建一个session会话对象; Session session = Session.getDefaultInstance(properties, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("", "授权码"); } }); //可以通过session开启Dubug模式,查看所有的过程 session.setDebug(true); //2.获取连接对象,通过session对象获得Transport,需要捕获或者抛出异常; Transport tp = session.getTransport(); //3.连接服务器,需要抛出异常; tp.connect("smtp.qq.com","","授权码"); //4.连接上之后我们需要发送邮件; MimeMessage mimeMessage = imageMail(session); //5.发送邮件 tp.sendMessage(mimeMessage,mimeMessage.getAllRecipients()); //6.关闭连接 tp.close(); } public static MimeMessage imageMail(Session session) throws MessagingException { //消息的固定信息 MimeMessage mimeMessage = new MimeMessage(session); //邮件发送人 mimeMessage.setFrom(new InternetAddress("")); //邮件接收人,可以同时发送给很多人,我们这里只发给自己; mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("")); mimeMessage.setSubject("我也不知道是个什么东西就发给你了"); //邮件主题 /* 编写邮件内容 1.图片 2.附件 3.文本 */ //图片 MimeBodyPart body1 = new MimeBodyPart(); body1.setDataHandler(new DataHandler(new FileDataSource("src/resources/yhbxb.png"))); body1.setContentID("yhbxb.png"); //图片设置ID //文本 MimeBodyPart body2 = new MimeBodyPart(); body2.setContent("请注意,我不是广告<img src='cid:yhbxb.png'>","text/html;charset=utf-8"); //附件 MimeBodyPart body3 = new MimeBodyPart(); body3.setDataHandler(new DataHandler(new FileDataSource("src/resources/log4j.properties"))); body3.setFileName("log4j.properties"); //附件设置名字 MimeBodyPart body4 = new MimeBodyPart(); body4.setDataHandler(new DataHandler(new FileDataSource("src/resources/1.txt"))); body4.setFileName(""); //附件设置名字 //拼装邮件正文内容 MimeMultipart multipart1 = new MimeMultipart(); multipart1.addBodyPart(body1); multipart1.addBodyPart(body2); multipart1.setSubType("related"); //1.文本和图片内嵌成功! //new MimeBodyPart().setContent(multipart1); //将拼装好的正文内容设置为主体 MimeBodyPart contentText = new MimeBodyPart(); contentText.setContent(multipart1); //拼接附件 MimeMultipart allFile =new MimeMultipart(); allFile.addBodyPart(body3); //附件 allFile.addBodyPart(body4); //附件 allFile.addBodyPart(contentText);//正文 allFile.setSubType("mixed"); //正文和附件都存在邮件中,所有类型设置为mixed; //放到Message消息中 mimeMessage.setContent(allFile); mimeMessage.saveChanges();//保存修改 return mimeMessage; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。