Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaMail无法发送电子邮件_Java_Gmail_Jakarta Mail - Fatal编程技术网

JavaMail无法发送电子邮件

JavaMail无法发送电子邮件,java,gmail,jakarta-mail,Java,Gmail,Jakarta Mail,我正在尝试用java编写一个可以发送电子邮件的应用程序,我在youtube上找到了一个教程,并尝试遵循它。然而,它仍然不适用于我,这是我得到的错误 Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25, response: 421 at com.sun.mail.smtp.SMTPTransport.openServer(SMTPT

我正在尝试用java编写一个可以发送电子邮件的应用程序,我在youtube上找到了一个教程,并尝试遵循它。然而,它仍然不适用于我,这是我得到的错误

Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25, response: 421
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1949)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at javax.mail.Service.connect(Service.java:125)
at javax.mail.Transport.send0(Transport.java:194)
at javax.mail.Transport.send(Transport.java:124)
at libraryFineList.ParseRecords.main(ParseRecords.java:90)
我不知道,怎么了,我在谷歌上找到的任何东西都没有帮助

这是密码

    public static void main(String[] args) throws IOException, MessagingException {

    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.socketFactory.port", 465);
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.port", "465");

    Session session = Session.getDefaultInstance(props, 
            new javax.mail.Authenticator(){
        protected  PasswordAuthentication getPasswordAuthentication(){
        return new PasswordAuthentication("user@gmail.com", "pass");

        }
    }

            );

    try{
        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("user@gmail.com"));
        message.addRecipient(Message.RecipientType.TO,
                   new InternetAddress("ycharnetskaya@gmail.com", "Mr. User"));
        message.setSubject("Your Example.com account has been activated");
        message.setText("Worked");
  Transport.send(message);
    }catch(Exception e){
        e.printStackTrace();
    }


奇怪的是,当您的属性文件明确建议您使用smtp.gmail.com时,您的错误消息抱怨连接到localhost:25时出现问题

我不认为你的主机文件有什么可疑之处,会将smtp.gmail.com重定向回127.0.0.1或其他什么,是吗?如果从命令行
ping smtp.gmail.com
会发生什么


除此之外,我建议您检查一下您使用的是最新版本的Java Mail。

您遵循的教程充满了错误。从修复这些开始。然后按照这些。如果你仍然有问题,你会发现更多的帮助。还有很多可用的。

对我有用(javax.mail 1.5.2)。确定您没有防火墙或路由器问题吗?例如,您是否也考虑过尝试一个新端口587,但错误消息与您的来源不匹配code@MadProgrammer刚试过错误完全一样,防火墙或路由器会有什么问题?路由器或防火墙可能会阻止对特定端口的访问。当你
ping smtp.gmail.com
时会得到什么?因为您不应该在说
localhost
时出错,…@MadProgrammer发布了ping结果