java给钉钉邮箱发送邮件
1.开通POP和IMAP2.关闭【三方客户端登录安全管理】或者使用这里生成的密码3.引入pomdependencygroupIdjavax.mail/groupIdartifactIdmail/artifactIdversion1.4.7/version/dependency4.逻辑Stringhostsmtp.qiye.aliyun.com;Stringport465;Stringusernamexxxxxxdingtalk.com;// 钉钉发送者邮箱Stringpasswordxxxxxx;// 发送者邮箱账号StringtoEmailxxxxxdingtalk.com;// 钉钉接收者邮箱Stringsubject邮件标题try{PropertiespropsnewProperties();props.setProperty(mail.smtp.host,host);props.setProperty(mail.smtp.port,port);props.setProperty(mail.smtp.socketFactory.class,javax.net.ssl.SSLSocketFactory);props.setProperty(mail.smtp.socketFactory.fallback,false);// 启用调试//props.setProperty(mail.debug, true);props.setProperty(mail.smtp.socketFactory.port,port);props.setProperty(mail.smtp.auth,true);// 建立邮件会话SessionsessionSession.getDefaultInstance(props,newAuthenticator(){OverrideprotectedPasswordAuthenticationgetPasswordAuthentication(){returnnewPasswordAuthentication(username,password);}});// 建立邮件对象MimeMessagemessagenewMimeMessage(session);message.setFrom(newInternetAddress(username));message.setRecipients(Message.RecipientType.TO,toEmail);message.setSubject(subject);MimeMultipartmultipartnewMimeMultipart();BodyPartcontentPartnewMimeBodyPart();// 邮件正文contentPart.setContent(content,text/html;charsetutf-8);multipart.addBodyPart(contentPart);// 附件MimeBodyPartattachmentBodyPartnewMimeBodyPart();// 读取本地文件如果是前端传过来的MultipartFile文件需要将MultipartFile转为file再通过下面的方式// File file MultipartFileToFile(multipartFile);// DataSource source new FileDataSource(file);// attachmentBodyPart.setDataHandler(new DataHandler(source));DataHandlerdataHandlernewDataHandler(newFileDataSource(E:\\soft\\test.doc);attachmentBodyPart.setDataHandler(dataHandler);attachmentBodyPart.setFileName(test.doc);multipart.addBodyPart(attachmentBodyPart);// 设置邮件整体内容message.setContent(multipart);Transport.send(message);}catch(Exceptione){e.printStackTrace();}5.直接添加前端传过来的MultipartFile.....MimeMultipartmultipartnewMimeMultipart();BodyPartcontentPartnewMimeBodyPart();// 邮件正文contentPart.setContent(content,text/html;charsetutf-8);multipart.addBodyPart(contentPart);// 附件--这里改下MimeBodyPartattachmentBodyPartnewMimeBodyPart();FilefileMultipartFileToFile(multipartFile);DataSourcesourcenewFileDataSource(file);attachmentBodyPart.setDataHandler(newDataHandler(source));attachmentBodyPart.setFileName(file.getName());multipart.addBodyPart(attachmentBodyPart);// 设置邮件整体内容message.setContent(multipart);Transport.send(message);.....6.添加多个附件MimeMultipartmultipartnewMimeMultipart();BodyPartcontentPartnewMimeBodyPart();// 邮件正文contentPart.setContent(content,text/html;charsetutf-8);multipart.addBodyPart(contentPart);// 附件--这里改下for(MultipartFilemultipartFile:files){MimeBodyPartattachmentBodyPartnewMimeBodyPart();FilefileMultipartFileToFile(multipartFile);DataSourcesourcenewFileDataSource(file);//添加附件的内容attachmentBodyPart.setDataHandler(newDataHandler(source));//添加附件的标题attachmentBodyPart.setFileName(file.getName());multipart.addBodyPart(filePart);}// 设置邮件整体内容message.setContent(multipart);Transport.send(message);7.给多个邮箱发邮件Stringtosa1dingtalk.com,a2dingtalk.com,a3dingtalk.com;String[]toListto.split(,);Address[]addressesnewAddress[toList.length];for(inti0;itoList.length;i){addresses[i]newInternetAddress(toList[i]);}message.setRecipients(Message.RecipientType.TO,addresses);