无法使用JavaMail,Exchange Server和SMTP发送电子邮件

时间:2014-07-04 10:25:07

标签: smtp exchange-server javamail

我正在尝试下面的代码,使用JavaMail,Exchange Server和SMTP发送邮件:

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

            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(from));
            message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse(to));
            message.setRecipients(Message.RecipientType.CC,
                    InternetAddress.parse(cc));
            message.setSubject(sub);

            MimeBodyPart messageBodyPart1 = new MimeBodyPart();
            messageBodyPart1.setContent(msg, "text/html; charset=utf-8");

            Multipart multipart = new MimeMultipart();
            multipart.addBodyPart(messageBodyPart1);

            message.setContent(multipart);

            Transport.send(message);

获得以下错误,请帮助:

  

com.sun.mail.smtp.SMTPSendFailedException:550 5.7.1客户端没有   有权发送此发件人已抛出异常:   com.sun.mail.smtp.SMTPSendFailedException:550 5.7.1客户端没有   有权发送此发件人

我已于2014年7月7日更改了用户详细信息,现在收到以下错误:

  

抛出了异常:javax.mail.MessagingException:Connection   被服务器丢弃了?嵌套异常是:java.io.IOException:   连接被服务器丢弃了吗?

1 个答案:

答案 0 :(得分:0)

您使用的是什么版本的JavaMail?协议跟踪显示什么?您确定要对服务器进行身份验证吗?

如果您使用的是旧版本的JavaMail,则需要将属性设置为字符串,而不是布尔常量。