我需要用 JavaSE 1.6 制作一个简单的电子邮件发件人。我试图搜索一个解决方案,但我只找到了关于 JavaEE 的讨论。
问问题
128 次
1 回答
1
您当然可以从 Java SE 中发送邮件,您只需在项目中包含两个 jar 文件:mail.jar 和 activation.jar。Java EE 包含许多可以在 Java EE 容器之外使用的技术。您只需要将相关的库文件添加到您的项目中,从而添加到您的类路径中。下面的代码应该在使用 TLS 并且需要身份验证才能发送邮件的电子邮件服务器上工作。在端口 25(无安全性)上运行的电子邮件服务器需要更少的代码。
public static void main(String[] args) {
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 session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("gmailUser", "*****");
}
});
System.out.println(props);
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("yourAddress@gmail.com"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("arunGupta@oracle.com"));
message.setSubject("Java EE7 jars deployed used on Java SE");
message.setText("Dear Mr. Gupta,\nThank you for your work on Java EE7, but I need to send email from my desktop app.");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException utoh) {
System.out.println("Error sending message:" + utoh.toString());
}
}
于 2013-07-03T16:05:04.470 回答