如何使用javaSE1.6发送电子邮件

时间:2013-07-03 15:42:45

标签: java

我需要使用JavaSE 1.6创建一个简单的电子邮件发件人。 我试图搜索解决方案,但我发现只讨论JavaEE。

1 个答案:

答案 0 :(得分: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());
    }
}