나는 그것이 Exception.How이Java에서 메시지를 보내는 동안 MessagingExceptionIOException이 발생합니다.
javax.mail.MessagingException를 해결하기 위해 제공 작동하지 않는 첨부 미세하지만 메일을 작동하고 전송 mail.Text 메시지를 보내려면 다음 코드를 사용 IOException가 메시지를 전송하는 동안; 중첩 예외는 다음과 같습니다. javax.activation.UnsupportedDataTypeException : MIME 유형 multipart/mixed에 대한 개체 DCH가 없습니다. 경계 = "---- = _ Part_0_10430987.1294298904906"javax.mail.Transport.send0 (Transport.java:189)에서 com.sun.mail.smtp.SMTPTransport.sendMessage (SMTPTransport.java:676) 에서 SendMail.main (SendMail.java:22)에서 에있는 javax.mail.Transport.send (Transport.java:118) 에서 Gmailer.GMailSender.sendMailAttach (GMailSender.java:114)에서 발생했습니다. javax.activation.UnsupportedDataTypeException : MIME 유형 multipart/mixed에 대한 객체 DCH 없음; 경계 = "---- = _ Part_0_10430987.1294298904906"javax.mail.internet.MimeBodyPart.writeTo에서 javax.activation.DataHandler.writeTo (알 소스)에 javax.activation.ObjectDataContentHandler.writeTo (알 소스)에 (MimeBodyPart.java:1403) at javax.mail.internet.MimeMessage.writeTo (MimeMessage.java:1745) at com.sun.mail.smtp.SMTPTransport.sendMessage (SMTPTransport.java:636) ... 4 첨부 파일의 코드를 더
메일 :
public synchronized void sendMailAttach(String subject, String body,
String sender, String recipients) {
try {
MimeMessage message = new MimeMessage(session);
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
// Create the message part
BodyPart messageBodyPart = new MimeBodyPart();
// Fill the message
messageBodyPart.setText("hi Demo");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Part two is attachment
messageBodyPart = new MimeBodyPart();
String filename = "mail.txt";
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
// Put parts in message
message.setContent(multipart);
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(recipients));
Transport.send(message);
}
catch (MessagingException e) {
System.out.println("MessagingException" + e.getMessage());
}
catch (Exception e) {
System.out.println("Mail Send Exception " + e.getMessage());
}
}
텍스트 메일 송신 코드 :
public synchronized void sendMail(String subject, String body,
String sender, String recipients) throws Exception {
try {
MimeMessage message = new MimeMessage(session);
DataHandler handler = new DataHandler(new ByteArrayDataSource(
body.getBytes(), "text/plain"));
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setDataHandler(handler);
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(recipients));
Transport.send(message);
} catch (Exception e) {
}
}
스택 추적이 불완전하므로 전체를 제공하십시오. – Kartoch
중복 된 http://stackoverflow.com/questions/1969667/send-a-mail-from-java5-and-java6 – dkarp