java - 尝试用 Java 发送电子邮件时出现连接异常

标签 java jakarta-mail

我正在使用 Javamail API 尝试在我的 java 代码中发送电子邮件。问题发生在特定线路上。

部分代码为:

 URLConnection c = u.openConnection();          
 c.setDoInput(false);                            
 c.setDoOutput(true);               
 c.connect(); 
<小时/>

错误发生在代码的 c.connect() 行。我得到的错误是:

connect. Timeout = -1

java.net.ConnectException: Connection refused: connect

这就是我得到的所有描述。我不知道如何解决这个问题。请帮忙。

最佳答案

看看this page获取如何发送电子邮件的示例。 您应该使用 Transport 类来发送电子邮件。

public static void send(String smtpServer, String to, String from
   , String subject, String body) throws Exception
  {

      Properties props = System.getProperties();
      // -- Attaching to default Session, or we could start a new one --
      props.put("mail.smtp.host", smtpServer);
      Session session = Session.getDefaultInstance(props, null);
      // -- Create a new message --
      Message msg = new MimeMessage(session);
      // -- Set the FROM and TO fields --
      msg.setFrom(new InternetAddress(from));
      msg.setRecipients(Message.RecipientType.TO,
        InternetAddress.parse(to, false));
      // -- We could include CC recipients too --
      // if (cc != null)
      // msg.setRecipients(Message.RecipientType.CC
      // ,InternetAddress.parse(cc, false));
      // -- Set the subject and body text --
      msg.setSubject(subject);
      msg.setText(body);
      // -- Set some other header information --
      msg.setHeader("X-Mailer", "LOTONtechEmail");
      msg.setSentDate(new Date());
      // -- Send the message --
      Transport.send(msg);
      System.out.println("Message sent OK.");
  }

编辑:

因为你的评论...

检查是否有人阻塞了端口 25(防火墙、其他应用程序)

身份验证也可能是一个问题,你可以找到一个很好的例子 here

props.put( "mail.smtp.auth", "true" );
Authenticator auth = new SMTPAuthenticator( "me@sender.net", "mypassword" );

关于java - 尝试用 Java 发送电子邮件时出现连接异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187578/

相关文章:

java - 带对象锁的单例模式

java - 在JavaFX中,有没有办法先显示选项卡名称,然后显示图形?

java - 使用 ApprovalTest 验证多个图像

Java - 尝试从电子邮件中提取网址

java - GMail 将链接参数转换为错误的格式

java - 在Java中获取特定日期范围的SVN日志

java - 为什么在 Java varargs (int ...x,double ...y) 中出现这个编译错误?

android - 使用 JavaMail API 在 Android 中发送电子邮件

java - 通过 Java 和 Postfix 服务器发送 SMTP 邮件

java - javax.mail.SendFailedException : No recipient addresses error 的原因