qq_43478653 2021-02-25 20:50 采纳率: 25%
浏览 38

javaMail连接本地易邮异常

代码如下:

import java.util.Properties;  

import javax.mail.Authenticator;  
import javax.mail.Message;  
import javax.mail.Message.RecipientType;  
import javax.mail.MessagingException;  
import javax.mail.PasswordAuthentication;  
import javax.mail.Session;  
import javax.mail.Transport;  
import javax.mail.internet.AddressException;  
import javax.mail.internet.InternetAddress;  
import javax.mail.internet.MimeMessage;  
  
/** 
 * 邮件发送的工具类 
 * 使用eyoumailserver,内部账户发邮件 
 */  
/* 
javax.mail.Session:上下文环境信息,如服务器的主机名、端口号、协议名称等   
javax.mail.Message:邮件模型,发送邮件和接收邮件的媒介,封装了邮件的信息,如发件人、收件人、邮件标题、邮件内容等   
javax.mail.Transport:连接邮件SMTP服务器,发送邮件   
javax.mail.Store:连接邮件POP3、IMAP服务器,收取邮件 
*/  
public class MailUtils2 {  
    private static String userName = "xiaoming@wh.cn";//发送邮件的人  
    private static String password = "123456";//发送邮件的账户的密码  
    private static String userName2 = "xiaofang@wh.cn";//接收邮件的人  
    private static String port = "25";//465、587,默认25  
    /** 
     * 该方法用来发送邮件 
     * @param to:给谁发邮件 
     * **/  
    public static void sendMain(String to) throws AddressException, MessagingException{  
        //1、创建连接对象,连接到邮箱服务器  
        Properties props = new Properties();  
        //开启debug调试    
        props.setProperty("mail.debug", "true");    
        //stmp服务器需要进行身份验证,也就是有户名和密码的校验,这样才能通过验证  
        props.setProperty("mail.smtp.auth", "true");   
        //发送邮件协议名称    
        props.setProperty("mail.transport.protocol", "smtp");    
        //设置邮件服务器主机名    
        props.setProperty("mail.smtp.host", "223.150.50.95");//本地"localhost"  
        //设端口号(该配置可写可不写)  
        props.setProperty("mail.smtp.port", port);  
        
        //Authenticator:认证信息  
        Session session = Session.getInstance(props, new Authenticator(){  
            @Override  
            protected PasswordAuthentication getPasswordAuthentication() {  
                return new PasswordAuthentication(userName,password);//使用它给其他账户发邮件  
            }  
        });  
          
        //2、创建邮件对象  
        Message message = new MimeMessage(session);  
        //2.1设置发件人  
        message.setFrom(new InternetAddress(userName));  
        //2、2设置收件人  
        message.addRecipient(RecipientType.TO, new InternetAddress(to));  
        //2.3邮件的主题  
        message.setSubject("测试发消息");  
        //2.4邮件的正文(即邮件的内容)  
        message.setContent("测试邮件:来自xiaoming@wh.cn的邮件","text/html;charset=utf-8");  
          
        //3.发送邮件  
//        Transport trans = session.getTransport();  
//        //连接邮件服务器  
//        trans.connect(userName, password);    
//        //发送邮件  
//        trans.sendMessage(message, message.getAllRecipients());    
//        //关闭连接  
//        trans.close();  
          
        Transport.send(message);//(两种方式都可以)  
          
        System.out.println("发送成功");  
    }  
      
    public static void main(String[] args) {  
        try {  
            sendMain(userName2);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }   
    }  
}  

运行时提示异常信息如下:

com.sun.mail.util.MailConnectException: Couldn't connect to host, port: 223.150.50.95, 25; timeout -1;
  nested exception is:
	java.net.ConnectException: Connection timed out: connect
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2209)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:740)
	at javax.mail.Service.connect(Service.java:388)
	at javax.mail.Service.connect(Service.java:246)
	at javax.mail.Service.connect(Service.java:195)
	at javax.mail.Transport.send0(Transport.java:254)
	at javax.mail.Transport.send(Transport.java:124)
	at Mail.MailUtils2.sendMain(MailUtils2.java:81)
	at Mail.MailUtils2.main(MailUtils2.java:88)
Caused by: java.net.ConnectException: Connection timed out: connect
	at java.base/sun.nio.ch.Net.connect0(Native Method)
	at java.base/sun.nio.ch.Net.connect(Net.java:574)
	at java.base/sun.nio.ch.Net.connect(Net.java:563)
	at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
	at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:333)
	at java.base/java.net.Socket.connect(Socket.java:648)
	at java.base/java.net.Socket.connect(Socket.java:597)
	at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:359)
	at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2175)
	... 8 more
  • 写回答

1条回答 默认 最新

  • 悟●禅●酒 2021-02-26 15:11
    关注

    你查查你邮箱对应的  smtp  pop3等协议有没有打开

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集