为什么我的java邮件代码没有';不行?

为什么我的java邮件代码没有';不行?,java,sockets,Java,Sockets,我是socket编程的初学者。所以我不能解决我的项目的错误,我甚至不知道问题在哪里 这是我的密码: public static void main(String[] args) { String to = "parisa.roodheleh@gmail.com"; String from = "parisainfinity@yahoo.com"; String host = "localhost"; Properties properties = System.g

我是socket编程的初学者。所以我不能解决我的项目的错误,我甚至不知道问题在哪里

这是我的密码:

public static void main(String[] args) {
    String to = "parisa.roodheleh@gmail.com";
    String from = "parisainfinity@yahoo.com";
    String host = "localhost";
    Properties properties = System.getProperties();

    properties.setProperty("mail.smtp.host",host);

    Session session = Session.getDefaultInstance(properties);
    try{
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
        message.setSubject("This is the subject Line!");
        message.setText("This is autual message!");
        Transport.send(message);
        System.out.println("sent message successfully...");


    }catch(MessagingException mex){
        mex.printStackTrace();
    }

}
以下是一些错误:

com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 25; timeout -1;
  nested exception is:
    java.net.ConnectException: Connection refused: connect
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2054)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:697)

有什么想法吗?

检查端口25是否被以下因素阻塞:


由于您试图使用yahoo id发送电子邮件,因此您使用的smtp主机似乎无效。请尝试使用
smtp.mail.yahoo.com
作为主机

properties.setProperty("mail.smtp.host","smtp.mail.yahoo.com");
虽然问题稍有不同,但中提供了类似的解决方案


另外请注意,一旦你设置了这个,如果你继续发送电子邮件,最终(很快),雅虎(或smtp主机)将终止/保留发件人的帐户,因为您正在模仿潜在bot的行为滥发帐户。

您的本地计算机中是否安装了SMTP服务器?检查它是否已启动并正在运行。如果您试图通过Gmail SMTP服务器发送电子邮件,则您的主机将为SMTP.Gmail.com,端口将为587.emmm,sry但我如何检查?然后,我应该如何安装它?我应该在谷歌上搜索什么?好吧,我想这不仅仅是关于SMTP服务器,还有另一个错误:在javax.mail.Service.connect(Service.java:364)tnx上,你的回答让我又问了一个问题,这段代码如何处理没有密码的帐户?如果这样做有效,那么每个人都可以使用你的电子邮件地址将所有信息发送给他人。没有密码就无法工作。如果您参考我提供的链接,您将看到需要提供密码(除了正确的主机、端口和用户)才能获得正确的解决方案。好的,我没有这样做,而是用gmail地址替换雅虎地址,但错误是相同的。smtp提供器没有问题(gmail或雅虎),而不是您使用api的配置问题。请确保您使用的是参考答案中提到的正确设置。哇…它有效!!!tnx!现在我将发现该代码是关于…tnx tnx tnx tnxxx的。但是当我检查发件人帐户时,在发送框中没有任何内容。如何?我在cmd中键入了telnet example.com 25d结果是:“telnet”未被识别为内部或外部命令、可操作程序或批处理文件。