代码如下            String host = "smtp.ym.163.com"; // 163免费企业邮箱的smtp服务器
String from = "myname@****.com"; // 我的企业邮箱地址
String to = "receiver@***.com"; // 邮件要发送到的邮箱地址
String username = "myname@****.com"; 

String password = "secret"; // Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true"); SmtpAuth smtpAuth = new SmtpAuth(username, password);
Session session = Session.getDefaultInstance(props, smtpAuth);


session.setDebug(true); String msg = "hello";
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
BodyPart mdp = new MimeBodyPart();
mdp.setContent(msg, "text/html;charset=gb2312");
Multipart mm = new MimeMultipart();
mm.addBodyPart(mdp);
message.setContent(mm); message.setSubject("这是一个好消息");
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();结果显示:
但是我用免费163个人邮箱账户发送,就可以。这是为什么呢?网上有说是网易企业邮箱的服务器地址官方给的不对。但是也没说正确的是什么。求大神指导!!JavaMail企业邮箱

解决方案 »

  1.   

    smtp.ym.163.com这个地址是没错的,我们的邮件服务用的也是这个地址, /**
     * 发送html邮件
     * @param from 发件人
     * @param to 收件人
     * @param subject 邮件主题
     * @param text 邮件内容
     * @param host 邮件服务器类型(请传入smtp类型的邮件服务器)
     * @param username 登录用户名
     * @param password 登录密码
     * @throws MessagingException 
     */
    public void sendHtmlMail(String from, String []to, String subject, String text, String host, String username, 
    String password) throws MessagingException
    {
    //设置服务器验证信息
    Properties prop = new Properties();
    prop.setProperty("mail.smtp.auth", "true");
    prop.setProperty("mail.smtp.timeout", "30000");

    //设置邮件内容
    JavaMailSenderImpl javaMailSend = new JavaMailSenderImpl();
    MimeMessage message = javaMailSend.createMimeMessage();
    MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, "utf-8");

    messageHelper.setFrom(from);
    messageHelper.setTo(to);
    messageHelper.setSubject(subject);
    messageHelper.setText(text, true);

    //设置邮件服务器登录信息
    javaMailSend.setHost(host);
    javaMailSend.setUsername(username);
    javaMailSend.setPassword(password);
    javaMailSend.setJavaMailProperties(prop);

    javaMailSend.send(message);   
    }这是我之前写的发送邮件的代码, 项目中也在使用,希望能对楼主有所帮助
      

  2.   

    根据报的错误来看
    是认证失败了
    可能是用户名或密码错误
    或者是你163企业邮箱的POP3/SMTP服务没有开启!
    再或者其他什么原因