开发者社区> 问答> 正文

javamail 初级代码出错? 400 报错

javamail 初级代码出错? 400 报错

源代码:public class SendEmail {
 
 public static void main(String[] args) {
  // 收件人电子邮箱
  String to = "a@xx.com.cn";
  
  // 发件人电子邮箱
  String from = "b@xx.com.cn";
  
  // 指定发送邮件的主机为 localhost
  String host = "hikml.xxxx.com.cn";
  
  // 获取系统属性
  Properties properties = System.getProperties();
  
  // 设置邮件服务器
  properties.put("mail.smtp.host", host);
  properties.put("mail.smtp.port", "25");
  properties.setProperty("mail.transport.protocol", "smtp");
  properties.put("mail.smtp.auth", "true");
  properties.put("mail.smtp.user", "a@xx.com.cn");
  properties.put("mail.smtp.password", "*******");
  
  // 获取默认session对象
  Session session = Session.getDefaultInstance(properties);
  session.setDebug(true);
  try {
   // 创建默认的 MimeMessage 对象
   MimeMessage message = new MimeMessage(session);
   // Set From: 头部头字段
   message.setFrom(new InternetAddress(from));
   
   // Set To: 头部头字段
   message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
   
   // Set Subject: 头部头字段
   message.setSubject("This is the Subject Line!");
   
   // 设置消息体
   message.setText("This is actual message");
   
   // 发送消息
   Transport.send(message);
   System.out.println("Sent message successfully....");
  } catch (MessagingException mex) {
   mex.printStackTrace();
  }
 }
 
}



就是网上的一个初级教程,但是一直调不通。hikml.xxxx.com.cn这是公司内部邮件服务器。能平通,使用25端口能telnet连通。

展开
收起
爱吃鱼的程序员 2020-06-04 14:02:33 585 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    不好意思:下面是错误:

    javax.mail.AuthenticationFailedException: failed to connect, no password specified?
     at javax.mail.Service.connect(Service.java:329)
     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 com.support.mail.SendEmail.main(SendEmail.java:70)

    ######提示密码错误######
     
    

    试下这样看看?这是我之前写的

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



    ######这个也写过了的,这种写法的错误是: javax.mail.MessagingException: Could not connect to SMTP host: hikml.hikvision.com.cn, port: 25; nested exception is: java.net.SocketException: Network is unreachable:######你这个用的smtp服务器来发邮件,你用的密码是自己设置的吧?不是smtp的密码,现在的smtp服务器的邮箱密码跟你的邮箱密码是不一样的,当然你也可以设置成一样的,不过有些邮箱就不支持自定义密码,比如QQ邮箱,有些可以自定义smtp的操作密码  比如网易的######

    引用来自“太黑的忧郁情怀”的评论

    你这个用的smtp服务器来发邮件,你用的密码是自己设置的吧?不是smtp的密码,现在的smtp服务器的邮箱密码跟你的邮箱密码是不一样的,当然你也可以设置成一样的,不过有些邮箱就不支持自定义密码,比如QQ邮箱,有些可以自定义smtp的操作密码  比如网易的
    我那个密码是我平时收发邮件的密码,smtp服务器的密码怎么设置知道吗。######

    引用来自“太黑的忧郁情怀”的评论

    你这个用的smtp服务器来发邮件,你用的密码是自己设置的吧?不是smtp的密码,现在的smtp服务器的邮箱密码跟你的邮箱密码是不一样的,当然你也可以设置成一样的,不过有些邮箱就不支持自定义密码,比如QQ邮箱,有些可以自定义smtp的操作密码  比如网易的

    引用来自“进击的老虎”的评论

    我那个密码是我平时收发邮件的密码,smtp服务器的密码怎么设置知道吗。
    进入邮箱   开启pop   就会提示你,有可能是直接给你个操作密码,也有可能让你自己设置
    2020-06-04 16:37:59
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Java单元测试实战 立即下载
《0代码搭应用》 立即下载
不止代码 立即下载