javax.mail.MessagingException:无法连接到SMTP主机

时间:2011-10-13 07:24:16

标签: java javamail

  

可能重复:
  javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25;

我尝试通过jsp页面发送电子邮件,但它显示以下错误:

  

javax.mail.MessagingException:无法连接到SMTP主机:www.gmail.com,端口:25,响应:421

这是我用来发送电子邮件的代码:

<%
    try
    {
        String host = "www.gmail.com";
        String to = request.getParameter("to");
        String from = request.getParameter("from");
        String subject = request.getParameter("subject");
        String messageText = request.getParameter("body");
        boolean sessionDebug = false;

        Properties props = System.getProperties();
        props.put("mail.host", host);
        props.put("mail.transport.protocol", "smtp");
        Session mailSession = Session.getDefaultInstance(props, null);

        mailSession.setDebug(sessionDebug);

        Message msg = new MimeMessage(mailSession);
        msg.setFrom(new InternetAddress(from));
        InternetAddress[] address = {new InternetAddress(to)};
        msg.setRecipients(Message.RecipientType.TO, address);
        msg.setSubject(subject);
        msg.setSentDate(new Date());
        msg.setText(messageText);

        Transport.send(msg);
        out.println("Mail was sent to " + to);
        out.println(" from " + from);
        out.println(" using host " + host + ".");
    }
    catch (MessagingException mex) 
    {
        System.out.println("Error: unable to send message....");
        mex.printStackTrace();
    }
%>

有人能告诉我导致此错误的原因是什么吗?

1 个答案:

答案 0 :(得分:0)

您需要指向gmail邮件服务器,而不是Web服务器。

所以改变

String host = "www.gmail.com";

String host = "smtp.gmail.com";

编辑:您还需要:String port = "587";而不是...port = "25"