1. 导入 JavaMail 和相关库:
- 首先,确保项目中包含 JavaMail API 和其依赖的库。这通常包括 javax.mail 和 javax.activation 等库。
2. 编写发送邮件的 Servlet:
- 在 Servlet 中编写代码,使用 JavaMail API 发送电子邮件。
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
public class EmailSenderServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 收件人地址
String to = "recipient@example.com";
// 发件人地址
String from = "your-email@example.com";
// 发件人用户名和密码
final String username = "your-email@example.com";
final String password = "your-email-password";
// 邮件服务器主机
String host = "smtp.example.com";
// 设置邮件属性
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
properties.setProperty("mail.smtp.auth", "true");
// 获取默认 Session 对象
Session session = Session.getDefaultInstance(properties, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// 创建 MimeMessage 对象
MimeMessage message = new MimeMessage(session);
// 设置发件人和收件人
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
// 设置邮件主题和内容
message.setSubject("Test Email from Servlet");
message.setText("This is a test email sent from a Servlet.");
// 发送邮件
Transport.send(message);
System.out.println("Email sent successfully.");
} catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
请注意,在实际应用中,不建议在代码中直接硬编码用户名和密码。通常,这些敏感信息应该存储在安全的配置文件或环境变量中,并由应用程序动态获取。
3. 配置 web.xml:
- 在 web.xml 中配置 Servlet 映射。
<servlet>
<servlet-name>EmailSenderServlet</servlet-name>
<servlet-class>com.example.EmailSenderServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>EmailSenderServlet</servlet-name>
<url-pattern>/send-email</url-pattern>
</servlet-mapping>
4. 通过浏览器或其他客户端访问 Servlet:
- 最后,通过浏览器或其他客户端访问配置的 URL,触发 doPost 方法,从而发送电子邮件。
确保在使用 JavaMail API 时,了解邮件服务器的要求和安全性要求,并按照需要进行相应的配置。
转载请注明出处:http://www.zyzy.cn/article/detail/13653/Servlet