如何用 Java 发送电子邮件?

2022-09-01 09:15:26

我需要从在Tomcat中运行的servlet发送电子邮件。我总是会发送给具有相同主题但内容不同的同一收件人。

用 Java 发送电子邮件的一种简单易行的方法是什么?

相关:

如何使用GMail从Java应用程序发送电子邮件?


答案 1

以下是我执行此操作的代码:

import javax.mail.*;
import javax.mail.internet.*;

// Set up the SMTP server.
java.util.Properties props = new java.util.Properties();
props.put("mail.smtp.host", "smtp.myisp.com");
Session session = Session.getDefaultInstance(props, null);

// Construct the message
String to = "you@you.com";
String from = "me@me.com";
String subject = "Hello";
Message msg = new MimeMessage(session);
try {
    msg.setFrom(new InternetAddress(from));
    msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
    msg.setSubject(subject);
    msg.setText("Hi,\n\nHow are you?");

    // Send the message.
    Transport.send(msg);
} catch (MessagingException e) {
    // Error.
}

你可以从Sun获取JavaMail库:http://java.sun.com/products/javamail/


答案 2

JavaMail使用起来可能有点痛苦。如果你想要一个更简单,更干净的解决方案,那么看看JavaMail的Spring包装器。参考文档如下:

http://static.springframework.org/spring/docs/2.5.x/reference/mail.html

但是,这确实意味着您的应用程序中需要Spring,如果这不是一个选项,那么您可以查看另一个开源包装器,例如simple-java-mail:

simplejavamail.org

或者,您可以直接使用JavaMail,但上述两种解决方案是用Java发送电子邮件的更简单,更干净的方式。


推荐