主要就是两个类,一个发送类,一个测试类,本文用来记录我在较新的java web maven项目中运行此代码遇到的错误
1、Servlet中好像不支持实例化一个新的类?
当我按照原文的方法书写时,在servlet中准备实例化SendEmail 类的时候报错,错误原因为找不到路径?(把SendEmail 作为Servlet的内部类也不可以) 因此我将原先SendEmail 类的所有内容以函数的形式插入到了Servlet中却能运行成功,下面为修改后的代码
/**
* @author FlowerWang
*/
@WebServlet(name = "DynamicCode", value = "/DynamicCode")
public class DynamicCode extends HttpServlet {
private final String myEmailAccount = "不告诉你哦~";//发送的邮箱
private final String myEmailPassword = "去申请你自己的哦~";
private String myEmailSMTPServer = "smtp.qq.com";
private String receiveMailAccount;
private String info;
public void send() throws Exception {
// 1. 创建参数配置, 用于连接邮件服务器的参数配置
Properties props = new Properties(); // 参数配置
props.setProperty("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求)
props.setProperty("mail.smtp.host", myEmailSMTPServer); // 发件人的邮箱的 SMTP 服务器地址
props.setProperty("mail.smtp.auth", "true"); // 需要请求认证
final String smtpPort = "465";
props.setProperty("mail.smtp.port", smtpPort);
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.socketFactory.port", smtpPort);
Session session = Session.getDefaultInstance(props);
session.setDebug(true);
// 3. 创建一封邮件
MimeMessage message = createMessage(session, myEmailAccount, receiveMailAccount, info);
Transport transport = session.getTransport();
transport.connect(myEmailAccount, myEmailPassword);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
public MimeMessage createMessage(Session session, String sendMail, String receiveMail