2016-12-01 79 views
0

我有一個組電子郵件ID,而我發送郵件到組電子郵件ID與OUTLOOK它工作正常。當我嘗試將它發送到jAVA MAIL中的同一組電子郵件ID時,它將拋出一個沒有此用戶的例外。我在哪裏使用相同的SMTP主機。Java郵件 - 發送電子郵件到組電子郵件時沒有這樣的用戶異常ID

例外:

javax.mail.SendFailedException: Invalid Addresses; 
    nested exception is: 
     com.sun.mail.smtp.SMTPAddressFailedException: 550 [email protected] 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 [email protected] 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("[email protected]")); 
    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); 

可以在此任意一個幫助嗎?

+0

如果你使用Outlook,你可能還使用Exchange,並且Outlook可能使用Microsoft專有協議與Exchange交談。可能有一些關於使用該協議允許它工作,但導致它與SMTP失敗。也許Outlook正在擴大客戶端的組列表併發送給組員?如果您發送到組,並使用Outlook以外的其他內容閱讀郵件,則郵件的「收件人」標題中會顯示什麼內容? –

回答

0

這意味着郵件地址是無效的,無論是sender addressreceiver 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; 
} 
+0

謝謝,我的問題是關於組電子郵件,我已經有成功發送郵件的代碼。 – ChiranjeeviIT

相關問題