Javax.mail或java电子邮件-如何在不直接发送的情况下打开电子邮件
我正试图弄清楚如何使用javax.mail打开电子邮件。我的目标是提供一个功能,用户点击一个按钮,默认的电子邮件将打开一个附件。到目前为止,我正在使用javax.mail,它所做的只是在点击按钮时发送电子邮件。有没有一种方法可以直接打开电子邮件而不直接发送?如果是,怎么做?我正在使用Java8 我不能使用“mailto:”,因为当用户打开电子邮件时,我需要附加一个png文件。另外,我不确定是否应该使用ProcessBuilder打开outlook,因为每个用户的计算机在C驱动器中都有不同的用户名,或者我不确定如何使用它 这是我的代码,以防你需要Javax.mail或java电子邮件-如何在不直接发送的情况下打开电子邮件,java,email,jakarta-mail,javax,Java,Email,Jakarta Mail,Javax,我正试图弄清楚如何使用javax.mail打开电子邮件。我的目标是提供一个功能,用户点击一个按钮,默认的电子邮件将打开一个附件。到目前为止,我正在使用javax.mail,它所做的只是在点击按钮时发送电子邮件。有没有一种方法可以直接打开电子邮件而不直接发送?如果是,怎么做?我正在使用Java8 我不能使用“mailto:”,因为当用户打开电子邮件时,我需要附加一个png文件。另外,我不确定是否应该使用ProcessBuilder打开outlook,因为每个用户的计算机在C驱动器中都有不同的用户名
String result;
String to = "....gov";
String from = "....gov";
String host = "....gov";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
Session mailSession = Session.getDefaultInstance(properties);
try{
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(emailFrom));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(emailTo));
message.setSubject("meh!");
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("text body mehmehmehmeh");
// Create a multipar message
Multipart multipart = new MimeMultipart();
// Set text message part
multipart.addBodyPart(messageBodyPart);
// Part two is attachment
messageBodyPart = new MimeBodyPart();
String filename = "testing.png";
DataSource source = new FileDataSource(filename);
String imageString = toDataURL.substring("data:image/png;base64," .length());
byte[] contentdata = imageString.getBytes();
ByteArrayDataSource ds = new ByteArrayDataSource(contentdata, "image/png");
messageBodyPart.setDataHandler(new DataHandler(ds));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart); //
// Send the complete message parts
message.setContent(multipart);
Transport.send(message);
result = "Sent message successfully....";
}catch (MessagingException mex) {
mex.printStackTrace();
result = "Error: unable to send message....";
}
有没有一种方法可以直接打开电子邮件而不直接发送?如果是,怎么做
不要打电话给运输部。发送。然后从msg.saveChanges开始。答案中有一个X-Unsent标题,可用于切换outlook的某些功能
另外,我不确定是否应该使用ProcessBuilder打开outlook,因为每个用户的计算机在C驱动器中都有不同的用户名,或者我不确定如何使用它
您使用,因为这将说明用户名。如果您需要保存在可以读取的其他位置,或者仅针对可以读取的Windows计算机。要列出所有环境变量,可以在命令窗口中键入set