日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

SpringBoot的email发送ssl协议格式

發(fā)布時(shí)間:2024/9/19 javascript 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot的email发送ssl协议格式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

yml文件

Controller內(nèi)容

package com.bam.controller;import com.hbyh.bam.dto.RespBean; import com.hbyh.bam.model.Mail; import com.hbyh.bam.service.MailService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile;import java.util.ArrayList;@Api(tags = "郵件發(fā)送") @RestController @RequestMapping("/email") public class EmailController {@Autowiredprivate MailService mailService;public static String TEMPATH = "/war/template";@PostMapping("/toEmail/{email}")@ResponseBody@ApiOperation(value = "發(fā)送郵件")public RespBean toEmail(@RequestParam("file") MultipartFile multipartFile,String body,@PathVariable String email){Mail mail=new Mail();mail.setSubject("標(biāo)題名"); //標(biāo)題名mail.setPersonal("發(fā)送人名稱"); //發(fā)送人名稱mail.setContent(body);int num=mailService.saveFile(mail,email,multipartFile);if(num<=0){return RespBean.goBack(1,"發(fā)送失敗,請(qǐng)重試");}else{return RespBean.goBack(0,"已發(fā)送");}} }

MailService類

package com.bam.service;import java.util.List;import com.hbyh.bam.model.Mail; import org.springframework.web.multipart.MultipartFile;public interface MailService {int saveFile(Mail mail, String toUser, MultipartFile multipartFile);}

MailServiceImpl實(shí)現(xiàn)類

package com.bam.service.impl;import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.List;import com.hbyh.bam.controller.EmailController; import com.hbyh.bam.service.SendMailSevice; import com.hbyh.bam.utils.IdWorker; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional;import com.hbyh.bam.dao.MailDao; import com.hbyh.bam.model.Mail; import com.hbyh.bam.service.MailService; import com.hbyh.bam.utils.UserUtil; import org.springframework.web.multipart.MultipartFile;@Service public class MailServiceImpl implements MailService {@Autowiredprivate SendMailSevice sendMailSevice;@Autowiredprivate MailDao mailDao;@Autowiredprivate IdWorker idWorker;@Transactionalpublic int saveFile(Mail mail, String toUser,MultipartFile multipartFile) {int status = 0;try {//獲取文件File file = MultiToFile(multipartFile);sendMailSevice.sendMailFile(toUser, mail.getSubject(), mail.getContent(),mail.getPersonal(),file);status=1;} catch (Exception e) {log.error("發(fā)送郵件失敗", e);status = -1;}return status;}/*** 將multipartFile文件轉(zhuǎn)為File文件*/public File MultiToFile(MultipartFile multipartFile) {if(multipartFile==null){return null;}//獲取file名字String filename = multipartFile.getOriginalFilename();//獲取文件后綴String suffix = filename.substring(filename.lastIndexOf("."));//創(chuàng)建一個(gè)不重名的文件String employeesId = idWorker.nextId() + "";File file = new File(EmailController.TEMPATH+"/"+employeesId+suffix);try {//輸入流InputStream ins=multipartFile.getInputStream();//輸出流OutputStream os = new FileOutputStream(file);int bytesRead = 0;byte[] buffer = new byte[8192];while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {os.write(buffer, 0, bytesRead);//開始寫}os.close();ins.close();} catch (Exception e){file=null;e.printStackTrace();}return file;}}

Mail實(shí)體類

package com.bam.model;public class Mail {private String toUsers;private String subject;private String content;private String personal; }

SendMailSevice類

package com.bam.service;import javax.mail.MessagingException; import java.io.File; import java.io.UnsupportedEncodingException; import java.util.List;public interface SendMailSevice {/*** * @param toUser 發(fā)送人* @param subject 標(biāo)題* @param text 內(nèi)容* @param personal 發(fā)送人名稱* @param file 文件* @throws Exception*/void sendMailFile(String toUser, String subject, String text,String personal, File file) throws Exception; }

SendMailSeviceImpl 實(shí)現(xiàn)類

package com.bam.service.impl;import com.hbyh.bam.service.SendMailSevice; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service;import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.File; import java.io.UnsupportedEncodingException;@Service public class SendMailSeviceImpl implements SendMailSevice {@Autowiredprivate JavaMailSender javaMailSender;@Value("${spring.mail.username}")private String serverMail;public void sendMailFile(String toUser, String subject, String text,String personal, File file) throws MessagingException, UnsupportedEncodingException {MimeMessage message = javaMailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(message, true);helper.setFrom(serverMail,personal);helper.setTo(toUser);helper.setSubject(subject);helper.setText(text!=null?text:"", true);if(file!=null){//獲取文件名稱String filepathname=file.getName();//添加附件helper.addAttachment(filepathname, file);//附件}javaMailSender.send(message);} }

MailSocketFactory配置類

package com.bam.config.email; import javax.net.SocketFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; import java.io.IOException; import java.net.InetAddress; import java.net.Socket; import com.bam.config.email.MailTrustManager;/*** email配置*/ public class MailSocketFactory extends SSLSocketFactory {private SSLSocketFactory factory;public MailSocketFactory() {try {SSLContext sslcontext = SSLContext.getInstance("TLS");sslcontext.init(null, new TrustManager[] { new MailTrustManager() }, null);factory = sslcontext.getSocketFactory();} catch (Exception ex) {// ignore}}public static SocketFactory getDefault() {return new MailSocketFactory();}@Overridepublic Socket createSocket() throws IOException {return factory.createSocket();}@Overridepublic Socket createSocket(Socket socket, String s, int i, boolean flag) throws IOException {return factory.createSocket(socket, s, i, flag);}@Overridepublic Socket createSocket(InetAddress inaddr, int i, InetAddress inaddr1, int j) throws IOException {return factory.createSocket(inaddr, i, inaddr1, j);}@Overridepublic Socket createSocket(InetAddress inaddr, int i) throws IOException {return factory.createSocket(inaddr, i);}@Overridepublic Socket createSocket(String s, int i, InetAddress inaddr, int j) throws IOException {return factory.createSocket(s, i, inaddr, j);}@Overridepublic Socket createSocket(String s, int i) throws IOException {return factory.createSocket(s, i);}@Overridepublic String[] getDefaultCipherSuites() {return factory.getDefaultCipherSuites();}@Overridepublic String[] getSupportedCipherSuites() {return factory.getSupportedCipherSuites();} }

MailTrustManager配置類

package com.bam.config.email; import javax.net.ssl.X509TrustManager; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; /*** email配置*/ public class MailTrustManager implements X509TrustManager {@Overridepublic void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {}@Overridepublic void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {}@Overridepublic X509Certificate[] getAcceptedIssuers() {return new X509Certificate[0];} }

#####最后可以使用,此操作避免阿里云的25端口未開啟,創(chuàng)建的ssl協(xié)議格式發(fā)送郵件,可批量發(fā)送附件

總結(jié)

以上是生活随笔為你收集整理的SpringBoot的email发送ssl协议格式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。