【发布时间】:2020-12-27 03:54:36
【问题描述】:
在这里它工作得很好,但我没有使用收到的文件,而是使用文件路径 我怎样才能做到这一点 我虽然将它转换为输入流会做一些好事,但没有输入流的构造函数 请告诉我 提前致谢
@RequestMapping("/SendMail")
public String mail(@RequestParam("prescription") MultipartFile prescription,@RequestParam("email") String email,HttpSession session) {
try {
customer ct=custServ.customerExists(email);
InputStream in = prescription.getInputStream();
String filename=prescription.getName();
if(ct!=null){
final String SEmail="email@gmail.com";
final String SPass="passowrd";
final String REmail=email;
final String Sub="Your prescription is here!";
//mail send Code
Properties props=new Properties();
props.put("mail.smtp.host","smtp.gmail.com");
props.put("mail.smtp.socketFactory.port","465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth","true");
props.put("mail.smtp.port","465");
Session ses=Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(SEmail,SPass);
}
}
);
Message message=new MimeMessage(ses);
message.setFrom(new InternetAddress(SEmail));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(REmail));
message.setSubject(Sub);
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("This is your prescription here");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
// File filep=new File(prescription);
DataSource source = new FileDataSource("C:\\Users\\Narci\\Desktop\\frontend\\Myqr3.jpg");
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
Transport.send(message);
session.setAttribute("msg","Mail Sent successfully.");
}
else{
session.setAttribute("msg", "Wrong Emial ID");
}
return "Doctor";
}
catch(Exception e) {
e.printStackTrace();
return "Error";
}
} ```
【问题讨论】:
-
你到底想做什么?输入的来源是什么?
-
简而言之,我想从前端获取文件并通过我从前端收到的文件所附的代码发送邮件
-
所以为了澄清你的意图:你想基本上通过你的前端附加一个文件,然后使用 Gmail API 将它附加到邮件中吗?您在使用Multipart upload 时遇到什么问题?
-
@MateoRandwolf 我需要知道我可以在此代码中进行哪些更改,这样我就不必在此代码中使用文件路径来附加文件
-
那么,您基本上是想使用带有附件的 Gmail API 发送电子邮件吗?并且您不想编写文件路径以将此文件附加到电子邮件内容?
标签: java spring jakarta-mail gmail-api multipartconfig