按下按钮后,下面的代码会立即打开Outlook电子邮件。 有没有办法自动将文件附加到邮件以及可能的主题?
public void onSubmit() {
try {
Desktop.getDesktop().browse(new URI("mailto:username@domain.com"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我尝试将桌面行更改为此。这有用吗?它没有编译:
Desktop.getDesktop().browse(new URI('mailto:username@domain.com?subject=New_Profile&body=see attachment&attachment="xyz.xml"'));
答案 0 :(得分:2)
Desktop desktop = Desktop.getDesktop();
String message = "mailto:username@domain.com?subject=New_Profile&body=seeAttachment&attachment=c:/Update8.txt";
URI uri = URI.create(message);
desktop.mail(uri);
您无法手动将任何内容自动附加到电子邮件中。
答案 1 :(得分:1)
不,无法附加文件。您可以指定主题和正文。
http://skm.zoomquiet.org/data/20100419224556/index.html
顺便说一句,你不是通过Java发送邮件的。标签和问题不是同一个主题。
答案 2 :(得分:0)
您可以通过以下方式指定主题:
Desktop.getDesktop().browse(new URI("mailto:username@domain.com?subject=My+subject"));
请注意,主题需要进行URL编码。
据我所知,没有通用的方法来添加附件,尽管某些邮件客户端可能有特定于供应商的方式来执行此操作。
答案 3 :(得分:0)
简短的回答是否定的。 Jave不通过手段支持附件,这让我烦恼了2年。
答案很长,你可以使用mapi& amp; jni,但要为受伤的世界做好准备,因为并非所有邮件客户端都是平等的
答案 4 :(得分:0)
答案 5 :(得分:0)
是的,你可以做到。我的下面代码非常完美。使用它
只需调用此函数即可向客户端发送自动电子邮件。 参数“to”是您要向其发送电子邮件的电子邮件地址。
用于附加pdf reffer https://www.tutorialspoint.com/java/java_sending_email.htm
我通常在Maven项目中这样做。如果您正在使用maven项目,则导入以下依赖项。 的 https://mvnrepository.com/artifact/javax.mail/mail/1.4 强>
private void sendMail(String to, String subject, String emailBody) throws MessagingException{
final String username = "youremail@gmail.com";
final String password = "emailPassword";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("shubham20.yeole@gmail.com"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to));
message.setSubject(subject);
message.setContent(emailBody, "text/html; charset=utf-8");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}