【发布时间】:2019-12-18 09:36:06
【问题描述】:
我有一个 java web 项目。我正在尝试将与我们联系的部分添加到我的 Web 项目中。 netbeans 没有任何警告我,但是当我填写文本框并单击按钮时,邮件不会发送。
这是我的 servlet 代码:
@WebServlet(name = "MailDispatcherServlet", urlPatterns = {"/MailDispatcherServlet"})
public class MailDispatcherServlet extends HttpServlet {
@EJB
private MailSenderBean mailSender;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String toEmail = request.getParameter("email");
String subject = request.getParameter("subject");
String message = request.getParameter("message");
String fromEmail = "gorkemsoftware@gmail.com";
String usurname = "gorkemsoftware";
String password = "mypasword";
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
mailSender.sendEmail(fromEmail, usurname, password, toEmail, subject, message);
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>MAIL STATUS</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>MAIL STATUS !!!</h1>");
out.println("<b>MAIL SENT SUCCESSFULLY </b><br>");
out.println("Click <a href='frmMail.jsp'>here</a> to go back!!!");
out.println("</body>");
out.println("</html>");
}
}
这是我的 Bean 代码:
@Stateless
public class MailSenderBean {
public void sendEmail(String fromEmail, String username, String password,
String toEmail, String subject, String message){
try {
Properties props = System.getProperties();
props.put("mail.smtp.host", "stmp.gmail.com");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.fallback", "false");
Session mailSession = Session.getDefaultInstance(props, null);
mailSession.setDebug(true);
Message mailMessage = new MimeMessage(mailSession);
mailMessage.setFrom(new InternetAddress(fromEmail));
mailMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));
mailMessage.setContent(message, "text/html");
mailMessage.setSubject(subject);
Transport transport = mailSession.getTransport("smtp");
transport.connect("smtp.gmail.com", username, password);
transport.sendMessage(mailMessage, mailMessage.getAllRecipients());
} catch (Exception ex) {
Logger.getLogger(MailSenderBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
谁能告诉我这个项目有什么问题?邮件地址和密码也是正确的。我更改了 gmail 的安全设置。
这是我点击发送按钮时的输出:
邮件状态!!!
邮件成功发送 点击这里返回!!!
【问题讨论】:
-
日志有异常吗?
-
我想比现在更好地编写代码来理解你的意思...... :)
-
我的意思是一定有一些错误日志打印到netbeans的控制台,当你点击发送按钮时你看到任何错误吗?
-
当我点击发送按钮时,输出是:AIL STATUS !!!邮件发送成功点击这里返回!!! - 所以它不会给我任何错误。当运行文件本身/Users/GorkemKiziltas/NetBeansProjects/SEN2001_Project_02/nbproject/build-impl.xml:1160:执行此行时出现以下错误:/Users/GorkemKiziltas/NetBeansProjects/SEN2001_Project_02/nbproject/build-impl.xml: 1170:org.netbeans.api.debugger.jpda.DebuggerStartException:连接被拒绝(连接被拒绝)这是netbeans输出面板上的输出
标签: java api email servlets web-project