连接被拒绝:connect-Java邮件API

连接被拒绝:connect-Java邮件API,java,email,smtp,jakarta-mail,Java,Email,Smtp,Jakarta Mail,我在使用java mail API从corporate outlook发送电子邮件时遇到以下错误 javax.mail.MessagingException: Could not connect to SMTP host: smtp.mycompany.net.au, port: 25; nested exception is: java.net.ConnectException: Connection refused: connect 我可以使用与我的机器相同的端口远程登录服务

我在使用java mail API从corporate outlook发送电子邮件时遇到以下错误

javax.mail.MessagingException: Could not connect to SMTP host:       smtp.mycompany.net.au, port: 25;
 nested exception is:
java.net.ConnectException: Connection refused: connect
我可以使用与我的机器相同的端口远程登录服务器。问题的根本原因是什么

用于发送电子邮件的代码为-

Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", mysmtpserver);
props.put("mail.smtp.port", myport);

Session session = Session.getInstance(props,
            new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
            });

Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(fromEmailAddress));

message.setRecipients(Message.RecipientType.BCC, addressTo);
message.setSubject(emailSubject);

BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setHeader("Content-Type", "text/html;charset=UTF-8");
messageBodyPart.setHeader("Content-Transfer-Encoding", "quoted-printable"); 
messageBodyPart.setContent(emailBody, "text/html;charset=UTF-8");

Multipart multipart = new MimeMultipart();  
//part 1-add html part
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
String filename = reportFilePath.trim();
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));                    
messageBodyPart.setFileName(filename);                  
multipart.addBodyPart(messageBodyPart);
感谢您对解决此问题的任何帮助

谢谢
Libin

java.net.ConnectException:连接被拒绝:由于以下原因引发连接错误,您必须检查:

  • 您的主机名或端口
  • 您的属性代码编写准确
  • 确保防火墙没有阻塞端口
  • 如果服务器需要,请提供密码
  • 感谢您提供代码。请应用以下代码。这很容易理解,也很好用。100%测试

    import java.io.*;
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;   
    import javax.mail.event.*;      
    import java.net.*;
    import javax.activation.*;
    
    public class SendEmail extends ConfigProperties{
    
            public static void send(String from, String to, String subject, String content) throws AddressException, MessagingException{
    
            ErrorCheck ec   = new ErrorCheck();
            String error = "";
    
            try{
                error   = ec.error();
    
                String smtp = getPropVal("SMTP");
                String host = getPropVal("HOST");
    
                Properties props=new Properties();
                    props.put(smtp,host);
                Session   session1  =  Session.getDefaultInstance(props,null);
                Message msg =new MimeMessage(session1);
    
                msg.setHeader("Content-Type", "text/plain; charset=UTF-8");
                msg.setHeader("Content-Transfer-Encoding", "quoted-printable");           
    
                   msg.setFrom(new InternetAddress(from));
                       msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to,false));
                   msg.setSubject(subject);
                   msg.setContent(content,"text/html; charset=UTF-8");      
    
                    Transport.send(msg); 
    
                }catch(Exception e){
                ec.errorMsg(error+"SendEmail.send()", e);
                }
            }
    }
    

    java.net.ConnectException:连接被拒绝:由于以下原因引发连接错误,您必须进行检查:

  • 您的主机名或端口
  • 您的属性代码编写准确
  • 确保防火墙没有阻塞端口
  • 如果服务器需要,请提供密码
  • 感谢您提供代码。请应用以下代码。这很容易理解,也很好用。100%测试

    import java.io.*;
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;   
    import javax.mail.event.*;      
    import java.net.*;
    import javax.activation.*;
    
    public class SendEmail extends ConfigProperties{
    
            public static void send(String from, String to, String subject, String content) throws AddressException, MessagingException{
    
            ErrorCheck ec   = new ErrorCheck();
            String error = "";
    
            try{
                error   = ec.error();
    
                String smtp = getPropVal("SMTP");
                String host = getPropVal("HOST");
    
                Properties props=new Properties();
                    props.put(smtp,host);
                Session   session1  =  Session.getDefaultInstance(props,null);
                Message msg =new MimeMessage(session1);
    
                msg.setHeader("Content-Type", "text/plain; charset=UTF-8");
                msg.setHeader("Content-Transfer-Encoding", "quoted-printable");           
    
                   msg.setFrom(new InternetAddress(from));
                       msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to,false));
                   msg.setSubject(subject);
                   msg.setContent(content,"text/html; charset=UTF-8");      
    
                    Transport.send(msg); 
    
                }catch(Exception e){
                ec.errorMsg(error+"SendEmail.send()", e);
                }
            }
    }
    

    这意味着您的端口是打开的,但它拒绝连接只是为了澄清,您在运行JavaMail应用程序的同一台计算机上使用telnet,并且您正在连接smtp.mycompany.net.au上的端口25,对吗?您是否从服务器收到SMTP问候邮件?您能否向我们展示代码,以便更好地理解您在哪里出错。也许您没有正确设置属性我在代码中使用了以下属性-props=new properties();props.put(“mail.smtp.auth”,“true”);props.put(“mail.smtp.starttls.enable”、“true”);put(“mail.smtp.host”、“smtp.mycompany.net.au”);props.put(“mail.smtp.port”,“25”);我能够使用相同的代码使用gmail smpt服务器发送邮件。问题是在我开始使用公司smtp服务器之后出现的。这意味着您的端口已打开,但它拒绝连接。请澄清,您正在运行JavaMail应用程序的同一台计算机上使用telnet,您正在连接smtp.mycompany.net.au上的端口25,对吗?您是否从服务器收到SMTP问候邮件?您能否向我们展示代码,以便更好地理解您在哪里出错。也许您没有正确设置属性我在代码中使用了以下属性-props=new properties();props.put(“mail.smtp.auth”,“true”);props.put(“mail.smtp.starttls.enable”、“true”);put(“mail.smtp.host”、“smtp.mycompany.net.au”);props.put(“mail.smtp.port”,“25”);我能够使用相同的代码使用gmail smpt服务器发送消息。问题是在我开始使用公司smtp服务器之后出现的。