在 Servlet 中发送电子邮件通常需要使用 JavaMail API。JavaMail API 提供了发送和接收电子邮件的功能。以下是在 Servlet 中发送电子邮件的基本步骤:

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