繁体   English   中英

Java邮件-将电子邮件发送到组电子邮件ID时没有此类用户异常

[英]Java mail - No such user exception while sending email to Group email ID

我有一个群组电子邮件ID,当我使用OUTLOOK向群组电子邮件ID发送邮件时,它工作正常。 当我尝试将其从jAVA MAIL发送到同一群组的电子邮件ID时,它会抛出此类用户没有的异常。 我在哪里使用相同的SMTP主机。

例外:

javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
        com.sun.mail.smtp.SMTPAddressFailedException: 550 TestGropuEMAIL@sample.net... No such user

        at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1873)
        at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1120)
        at javax.mail.Transport.send0(Transport.java:195)
        at javax.mail.Transport.send(Transport.java:124)
        at com.ey.mail.SendEmail.sendMail(SendEmail.java:77)
        at com.ey.main.RunAutoMail.main(RunAutoMail.java:30)
Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 550 TestGropuEMAIL@sample.net... No such user

        at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1724)
        ... 5 more

码:

  Message message = new MimeMessage(session);
  message.setFrom(new InternetAddress(from));
  message.setHeader("X-Priority", "1");
  message.setRecipients(Message.RecipientType.TO,
  InternetAddress.parse("TestGropuEMAIL@sample.net"));
  BodyPart messageBodyPart = new MimeBodyPart();
  messageBodyPart.setContent(content,"text/html");
  Multipart multipart = new MimeMultipart();
  multipart.addBodyPart(messageBodyPart);
  messageBodyPart = new MimeBodyPart();
  String filename = "Test.XLSB";
  DataSource source = new FileDataSource(filename);
  messageBodyPart.setDataHandler(new DataHandler(source));
  messageBodyPart.setFileName(filename);
  multipart.addBodyPart(messageBodyPart);
  message.setContent(multipart);
  Transport.send(message);

有人可以帮忙吗?

这意味着邮件地址是无效的,无论是sender address还是receiver address

public boolean sendMail(Properties pro) {
    String host = pro.getProperty("host");
    String userName = pro.getProperty("userName");
    String passWord = pro.getProperty("passWord");
    String subject = pro.getProperty("subject");
    String fileName = pro.getProperty("fileName");
    String receivers = pro.getProperty("receivers");
    String mailContent = pro.getProperty("mailContent");

    System.out.println(mailContent);
    Properties props = new Properties();
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.port", "25");
    props.put("mail.debug", "true");

    MyAuthenticator myauth = new MyAuthenticator(userName, passWord);
    // Get session
    try {
        Session session = Session.getDefaultInstance(props, myauth);
        // Define message
        MimeMessage message = new MimeMessage(session);

        List list = new ArrayList();
        String[] toList = receivers.split(",");// mutilple mail receivers
        for (int i = 0; i < toList.length; i++) {
            list.add(new InternetAddress(toList[i]));
        }
        InternetAddress[] toAddress = (InternetAddress[]) list.toArray(
                new InternetAddress[list.size()]);
        InternetAddress fromAddress = new InternetAddress(userName, "",
                "UTF-8");
        message.setFrom(fromAddress);
        message.setSentDate(new Date());
        message.setRecipients(Message.RecipientType.TO, toAddress);
        message.setSubject(subject);

        Multipart multipart = new MimeMultipart();

        // mail content
        BodyPart contentBodyPart = new MimeBodyPart();
        contentBodyPart.setContent(mailContent, "text/plain;charset=utf-8");
        multipart.addBodyPart(contentBodyPart);

        // mail attachment
        BodyPart messageBodyPart = new MimeBodyPart();
        FileDataSource source = new FileDataSource(
                pro.getProperty("path") + fileName);
        messageBodyPart.setDataHandler(new DataHandler(source));
        messageBodyPart.setFileName(MimeUtility.encodeText(fileName));
        multipart.addBodyPart(messageBodyPart);

        message.setContent(multipart);
        message.saveChanges();

        Transport transport = session.getTransport("smtp");
        transport.connect(host, userName, passWord);
        transport.sendMessage(message, message.getAllRecipients());
    }
    catch (Exception e) {
        e.printStackTrace();
        logger.error("Mail Send exception:", e);
        return false;
    }
    return true;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM